code: func (az *Cloud) ListRoutes(ctx context.Context, clusterName string) ([]*cloudprovider.Route, error) {
  	klog.V(10).Infof("ListRoutes: START clusterName=%q", clusterName)
  	routeTable, existsRouteTable, err := az.getRouteTable()
  	routes, err := processRoutes(routeTable, existsRouteTable, err)
  	if err != nil {
  		return nil, err
  	}
  
  	// Compose routes for unmanaged routes so that node controller won't retry creating routes for them.
  	unmanagedNodes, err := az.GetUnmanagedNodes()
  	if err != nil {
  		return nil, err
  	}
  	az.routeCIDRsLock.Lock()
  	defer az.routeCIDRsLock.Unlock()
  	for _, nodeName := range unmanagedNodes.List() {
  		if cidr, ok := az.routeCIDRs[nodeName]; ok {
  			routes = append(routes, &cloudprovider.Route{
  				Name:            nodeName,
  				TargetNode:      mapRouteNameToNodeName(nodeName),
  				DestinationCIDR: cidr,
  			})
  		}
  	}
  
  	return routes, nil
  }
docs: // ListRoutes lists all managed routes that belong to the specified clusterName