5 #ifndef __AGENT_OPER_VXLAN_ROUTING_H
6 #define __AGENT_OPER_VXLAN_ROUTING_H
15 struct EnetNextHopType;
158 typedef std::set<const VmInterface *>
VmiList;
317 typedef std::map<const VnEntry *, boost::uuids::uuid>
VnLrSet;
325 typedef std::map<const InetUnicastAgentRouteTable *, DBTable::DBTableWalkRef>
374 const VnEntry *vn,
bool update,
bool withdraw);
492 const Peer* delete_from_peer);
509 bool update =
false);
528 const std::string& vrf_name);
533 const std::string& vrf_name,
535 const uint32_t plen);
650 static std::string
ipv4_prefix(
const std::string& prefix_str);
656 static std::string
ipv6_prefix(
const std::string& prefix_str);
666 const uint8_t& plen);
672 const uint32_t prefix_len);
678 const uint32_t prefix_len);
739 bool strict_match =
true);
746 bool strict_match =
true);
753 bool strict_match =
true);
759 bool strict_match =
true);
786 const int prefix_len, uint32_t vxlan_id,
const std::string vrf_name,
791 const int prefix_len, uint32_t vxlan_id,
const std::string vrf_name,
796 const int prefix_len,
const std::string vrf_name,
803 const int prefix_len, uint32_t vxlan_id,
const std::string vrf_name,
810 const int prefix_len, uint32_t vxlan_id,
const std::string vrf_name,
817 const int prefix_len, uint32_t vxlan_id,
const std::string vrf_name,
824 const int prefix_len,
const std::string vrf_name,
831 const int prefix_len,
const std::string vrf_name,
838 template <
class ItType>
844 template<
typename NhType>
846 const std::string& prefix_str,
847 const std::string& vrf_name,
848 const NhType &nh_item,
854 const std::string &vrf_name,
857 const autogen::EnetNextHopType &nh_item);
862 const std::string &vrf_name,
865 const autogen::NextHopType &nh_item);
void AddVmi(const VnEntry *vn, const VmInterface *vmi)
Adds a VmInterface (LR port) to a Logical Router and connects the given VirtualNetwork (to which the ...
void XmppAdvertiseEvpnTunnel(EvpnAgentRouteTable *inet_table, const IpAddress &prefix_ip, const int prefix_len, uint32_t vxlan_id, const std::string vrf_name, const RouteParameters ¶ms, const Peer *bgp_peer)
Advertises in the EVPN table a tunnel route that arrived via XMPP channel. Must be called only from X...
const TagList & tag_list_
A list of tags.
void VrfNotify(DBTablePartBase *partition, DBEntryBase *e)
A handler for changes (new/update/delete) in a VRF instance (VrfEntry class).
virtual ~VxlanRoutingManager()
Destroys the VxlanRoutingManager instance.
VxlanRoutingVnState(VxlanRoutingManager *mgr)
Constructs new instance using VxlanRoutingManager.
static bool IsHostRoute(const IpAddress &prefix_ip, uint32_t prefix_len)
Determines whether the prefix address and the prefix length point to a host route (/32 for IPv4...
static uint32_t ipv4_prefix_len(const std::string &prefix_str)
Extracts length of IPv4 subnet address from the prefix string.
VxlanRoutingVmiState()
Constructs new instance of VxlanRoutingVmiState.
DBTable::ListenerId vrf_listener_id_
An ID of the listener to changes in VrfTable.
std::set< const VmInterface * > vmi_list_
A list of VmInterface (router's ports) connected to a Logical Router (LR)
LrVrfInfoMap::iterator LrVrfInfoMapIter
A typedef for iterator of LrVrfInfoMap.
static bool IsBridgeVrf(const VrfEntry *vrf)
Determines whether the pointer to the VRF instance is of bridge type.
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge, EVPN (Type2/Type5). This base class contains common code for all types of route tables.
const AgentPath * FindBGPaaSPath(const InetUnicastRouteEntry *rt)
Finds in the given route the path that was announced using BGPaaS. It is expected that this path has ...
static std::string ipv4_prefix(const std::string &prefix_str)
Extracts an IPv4 address string from the prefix string.
std::set< const VnEntry * > BridgeVnList
A typedef to store the list of bridge virtual networks connected to a LR.
void WhenBridgeInetIntfWasDeleted(const InetUnicastRouteEntry *inet_rt, const VrfEntry *routing_vrf)
Handles deletion of a route in the EVPN table of the routing VRF instance.
static MacAddress NbComputeMac(const Ip4Address &compute_ip, const Agent *agent)
Returns the MAC address for the IP of a given neighbouring compute.
static const AgentPath * FindPathWithGivenPeerAndNexthop(const AgentRoute *inet_rt, const Peer::Type peer_type, const NextHop::Type nh_type, bool strict_match=true)
Finds in the given route the path with a specified Peer type and a specified nexthop type...
BridgeVnList bridge_vn_list_
The list of bridge virtual networks (VirtualNetwork) connected to a LR.
void RoutingVrfRouteWalkDone(DBTable::DBTableWalkRef walk_ref, DBTableBase *partition)
Handles completion of route walk in the EVPN table of a routing VRF instance.
VxlanRoutingRouteWalker(const std::string &name, VxlanRoutingManager *mgr, Agent *agent)
Constructs a new instance using the given name, pointer to the VxlanRoutingManager and pointer to the...
void DeleteVmi(const VnEntry *vn, const VmInterface *vmi)
Deletes the VmInterface from set of connected interfaces and disconnects the given VirtualNetwork fro...
DISALLOW_COPY_AND_ASSIGN(VxlanRoutingVrfMapper)
boost::asio::ip::address IpAddress
RouteParameters(const IpAddress &nh_addr, const MacAddress &mac, const VnListType &vns, const SecurityGroupList &sgs, const CommunityList &comms, const TagList &tags, const PathPreference &ppref, const EcmpLoadBalance &ecmp, uint64_t seq_n)
Constructs RouteParameters object from components.
DISALLOW_COPY_AND_ASSIGN(VxlanRoutingManager)
std::vector< int > SecurityGroupList
AgentRouteWalker * walker()
Returns a pointer to the AgentRouteWalkerPtr object.
void HandleSubnetRoute(const VrfEntry *vrf, bool bridge_vrf=false)
Handles routing routes (with VrfNH) update in the routing VRF instance.
bool WithdrawEvpnRouteFromRoutingVrf(const VrfEntry *routing_vrf, DBTablePartBase *partition, DBEntryBase *e)
Deletes a given EVPN route from EVPN table of the routing VRF instance.
const boost::uuids::uuid GetLogicalRouterUuidUsingRoute(const AgentRoute *rt)
Find the UUID of the LR using a given route (AgentRoute).
DISALLOW_COPY_AND_ASSIGN(VxlanRoutingRouteWalker)
const VxlanRoutingVrfMapper & vrf_mapper() const
Returns the map between LR uuids and associated bridge and routing VRF instances. ...
Listens to Inet routes in a bridge VRF instance. Started when l3vrf is added/deleted or when a bridge...
const VrfEntry * GetRoutingVrfUsingAgentRoute(const AgentRoute *rt)
Find the routing VRF instance using a given route (AgentRoute).
static AgentRoute * FindEvpnOrInetRoute(const Agent *agent, const std::string &vrf_name, const IpAddress &ip_addr, uint32_t prefix_len, const autogen::EnetNextHopType &nh_item)
Finds a route with the given prefix address and len in the EVPN table.
InetTableWalker inet6_table_walker_
The set of walkers for Inet IPv6 tables of bridge VRF instances.
A structure to hold path parameters during the transfer (routes leaking) of data between VRF instance...
const VrfEntry * GetRoutingVrfUsingUuid(const boost::uuids::uuid &lr_uuid)
Find the routing VRF instance using a given LR UUID.
uint64_t sequence_number_
An ID of sequence.
static bool is_ipv4_string(const std::string &prefix_str)
Determines whether the address string contains an IPv4 address as substring or not.
bool IsLocalRoute(EvpnRouteEntry *routing_evpn_rt, VrfEntry *bridge_vrf)
Determines if the given EVPN route is already present in the given VRF.
The class is used to store following information:
Base class for all Route entries in agent.
static const AgentPath * FindInterfacePathWithGivenPeer(const AgentRoute *inet_rt, const Peer::Type peer_type, bool strict_match=true)
Finds in the given route the path with the given Peer type and interface nexthop (InterfaceNH).
const VrfEntry * GetRoutingVrfUsingVn(const VnEntry *vn)
Find the routing VRF instance using a given virtual network.
void UpdateSubnetRoute(const VrfEntry *vrf, const VrfEntry *routing_vrf)
Updates subnet routes (actually, paths with VrfNH) in the given bridge VRF.
VrfEntryRef vrf_ref_
Holds a reference to a VrfEntry when VirtualNetwork's reference stored in VrfGet() is null...
const SecurityGroupList & sg_list_
A list of security groups.
void XmppAdvertiseInetTunnel(InetUnicastAgentRouteTable *inet_table, const IpAddress &prefix_ip, const int prefix_len, uint32_t vxlan_id, const std::string vrf_name, const RouteParameters ¶ms, const Peer *bgp_peer)
Advertises in the Inet table a tunnel route that arrived via XMPP channel. Must be called only from X...
DBTable::ListenerId evpn_id_
ID of a listener that tracks changes in the EVPN table of a routing VRF instance. ...
const VnEntry * routing_vn_
A pointer to the routing virtual network (VirtualNetwork) connected to a LR.
std::vector< ComponentNHKeyPtr > ComponentNHKeyList
const VrfEntry * routing_vrf_
A pointer to the routing VRF instance (L3 VRF) connected to a LR.
VnEntryRef vn_entry_
Reference (smart pointer) to the virtual network (VirtualNetwork) to which VmInterface belongs to...
VxlanRoutingManager * mgr_
A pointer to the VxlanRoutingManager instance.
static void PrintEvpnTable(const VrfEntry *const_vrf)
Prints EVPN table of the given VRF instance.
std::map< boost::uuids::uuid, RoutedVrfInfo > LrVrfInfoMap
A typedef to store map between Logical router UUID and RoutedVrfInfo.
RouteParameters(const RouteParameters &rp)
Copy constructor.
DBTable::ListenerId vmi_listener_id_
An ID of the listener to changes in InterfaceTable.
void AdvertiseBGPaaSRoute(const IpAddress &prefix_ip, uint32_t prefix_len, const AgentPath *path, EvpnAgentRouteTable *evpn_table)
Advertises BGPaaS interface path in the routing VRF instance by selecting corresponding path componen...
static std::vector< IpAddress > ItemNexthopsToVector(ItType *item)
Templates.
static bool RoutePrefixIsEqualTo(const EvpnRouteEntry *route, const IpAddress &prefix_ip, const uint32_t prefix_len)
Determines whether route prefix in the EVPN route is equal to the given pair of prefix IP address and...
This class manages routes leaking between bridge VRF instances and the routing VRF instance...
void CopyPathToInetTable(const AgentPath *path, const IpAddress &prefix_ip, const uint32_t plen, const Peer *peer, const RouteParameters ¶ms, InetUnicastAgentRouteTable *inet_table)
Copies the path to the prefix address into the EVPN table with the given Peer. The function is used d...
static const AgentPath * FindPathWithGivenPeer(const AgentRoute *inet_rt, const Peer::Type peer_type)
Finds in the given route the path with a specified Peer type.
Agent * agent_
A pointer to the Agent instance.
VxlanRoutingManager * mgr_
A pointer to the instance of VxlanRoutingManager.
static void AddInterfaceComponentToList(const std::string &prefix_str, const std::string &vrf_name, const NhType &nh_item, ComponentNHKeyList &comp_nh_list)
Adds an interface or a composite of interfaces nexthops to the list of components NH keys needed for ...
void ClearRedundantVrfPath(DBEntryBase *e)
Removes redundant VrfNH path from a given route. These routes might arise with small chance in a brid...
static bool is_ipv6_string(const std::string &prefix_str)
Determines whether the address string contains an IPv6 address as substring or not.
static bool IsRoutingVrf(const VrfEntry *vrf)
Determines whether the pointer to the VRF instance is of routing type.
DBTable::ListenerId vn_listener_id() const
Returns the ID of the listener to changes in the VnTable.
VnLrSet vn_lr_set_
The map between pointer to VirtualNetwork (a bridge or routing virtual network connected to some LR) ...
boost::intrusive_ptr< VnEntry > VnEntryRef
VmiList::iterator VmiListIter
A typedef for the iterator of VxlanRoutingVnState::VmiList.
const VnListType & vn_list_
A list of path destination virtual networks used in policy lookups.
virtual ~VxlanRoutingRouteWalker()
Destructs an instance of VxlanRoutingRouteWalker.
static uint32_t GetNewLocalSequence(const AgentPath *)
Auxilliary functions.
virtual bool RouteWalkNotify(DBTablePartBase *partition, DBEntryBase *e)
Runs route leaking process when L3 VRF instance is added/deleted or when a bridge VRF is attached / d...
std::map< const VnEntry *, std::string > BridgeVrfNamesList
A typedef to store the correspondence between bridge virtual network (VirtualNetwork) pointer and a n...
bool RouteNotify(DBTablePartBase *partition, DBEntryBase *e)
Handler for changes (new/update/delete) in a route (EVPN or Inet). Main entry point for routes leakin...
std::string GetOriginVn(const VrfEntry *routing_vrf, const IpAddress &ip_addr, const uint8_t &plen)
Finds first occurence of a route with the given prefix (IP address and length) in Inet tables of brid...
void WalkRoutingVrf(const boost::uuids::uuid &lr_uuid, const VnEntry *vn, bool update, bool withdraw)
Walks the EVPN table of the routing VRF instance of a given LR.
std::map< const InetUnicastAgentRouteTable *, DBTable::DBTableWalkRef > InetTableWalker
A typedef for a storage of all walkers on Inet tables, if needed the walk can be restarted instead of...
virtual ~VxlanRoutingVmiState()
Destroys an instance of VxlanRoutingVmiState.
const IpAddress & nh_addr_
A nexthop IP address of the tunnel. Contains first IP address of nh_addresses_ in case of a composite...
void VnNotify(DBTablePartBase *partition, DBEntryBase *e)
A handler for changes (new/update/delete) in a virtual network (VnEntry class).
virtual ~VxlanRoutingState()
Destroys an instance.
boost::uuids::uuid logical_router_uuid_
UUID of the LR to which this VmInterface is connected.
friend class AgentXmppChannelVxlanInterface
Allows access to Xmpp advertisement functions via external class.
boost::uuids::uuid logical_router_uuid() const
Returns the UUID of the Logical Router.
static uint32_t loc_sequence_
An always increasing counter for new paths (used to signal controoler about new routes).
AgentRouteWalkerManager * mgr()
RouteParameters()
Disallow default constructor.
std::vector< std::string > CommunityList
void FillSandeshInfo(VxlanRoutingResp *resp)
Updates Sandesh response.
void Register()
Registers handlers for events associated with changes in virtual networks (VnTable class) and VRF ins...
bool HasBgpPeerPath(EvpnRouteEntry *evpn_rt)
Determines whether the given EVPN route has at least one path originating from BGP/XMPP (has Peer typ...
void XmppAdvertiseEvpnInterface(EvpnAgentRouteTable *inet_table, const IpAddress &prefix_ip, const int prefix_len, uint32_t vxlan_id, const std::string vrf_name, const RouteParameters ¶ms, const Peer *bgp_peer)
Advertises in the EVPN table an interface route that arrived via XMPP channel. Must be called only fr...
RoutedVrfInfo()
Constructs an instance of RoutedVrfInfo.
std::set< std::string > VnListType
bool EvpnRouteNotify(DBTablePartBase *partition, DBEntryBase *e)
Performs routes leaking between the EVPN table of the routing VRF instance and the Inet table of the ...
boost::intrusive_ptr< AgentRouteWalker > AgentRouteWalkerPtr
void BridgeInet6RouteWalkDone(DBTable::DBTableWalkRef walk_ref, DBTableBase *partition)
Handles completion of route walk in an Inet IPv6 table of a bridge VRF instance.
Tracks movement of a VmInterface amongth LRs. This is used to associate VmInterface with a LR and a V...
AgentRouteTable * inet4_table_
A pointer to the IPv4 Inet table of a bridge VRF instance.
boost::asio::ip::address_v4 Ip4Address
static void PrintInetTable(const VrfEntry *const_vrf)
Prints IPv4 Inet table of the given VRF instance.
VxlanRoutingManager(Agent *agent)
Constructs instance of the class and links to the Agent class instance. Since only one agent class in...
const PathPreference & path_preference_
A reference to the PathPreference of the path.
void WalkBridgeInetTables(InetUnicastAgentRouteTable *inet4, InetUnicastAgentRouteTable *inet6)
Walks given Inet tables (IPv4 and IPv6).
void TryDeleteLogicalRouter(LrVrfInfoMapIter &it)
Attempts to delete the given LR.
AgentRouteTable * evpn_table_
A pointer to the EVPN table of a routing VRF instance.
BridgeVrfNamesList bridge_vrf_names_list_
The list of bridge virtual networks (VirtualNetwork) names connected to a LR.
static void CopyInterfacePathToEvpnTable(const AgentPath *path, const IpAddress &prefix_ip, const uint32_t plen, const Peer *peer, const RouteParameters ¶ms, EvpnAgentRouteTable *evpn_table)
Copies the path to the prefix address into the EVPN table with the given Peer. The function is used d...
void BridgeInet4RouteWalkDone(DBTable::DBTableWalkRef walk_ref, DBTableBase *partition)
Handles completion of route walk in the Inet IPv4 table of a bridge VRF instance. ...
static const AgentPath * FindInterfacePathWithBgpPeer(const AgentRoute *inet_rt, bool strict_match=true)
Finds in the given route the path which has the BGP_PEER Peer type and the Interface nexthop type...
const MacAddress & nh_mac_
A nexthop MAC address (usually it is a MAC of the router).
const std::vector< IpAddress > nh_addresses_
A list of nexthops IP addreses of a composite tunnel.
VxlanRoutingVrfMapper vrf_mapper_
A map between LR uuids and associated bridge and routing VRF instances.
DBTable::ListenerId inet4_id_
ID of a listener that tracks changes in the IPv4 Inet table of a bridge VRF instance.
std::set< const VmInterface * > VmiList
A typedef for a set of pointers to VmInterface.
static uint32_t ipv6_prefix_len(const std::string &prefix_str)
Extracts length of IPv6 subnet address from the prefix string.
static bool IsVxlanAvailable(const Agent *agent)
Checks whether VxLAN routing manager is enabled or not.
const CommunityList & communities_
A list of communities.
void XmppAdvertiseEvpnRoute(const IpAddress &prefix_ip, const int prefix_len, uint32_t vxlan_id, const std::string vrf_name, const RouteParameters ¶ms, const Peer *bgp_peer)
Advertises an EVPN route received using XMPP channel.
void WhenRoutingEvpnRouteWasDeleted(const EvpnRouteEntry *routing_evpn_rt, const Peer *delete_from_peer)
Handles deletion of a route in the Inet table of the routing VRF instance.
void XmppAdvertiseInetInterfaceOrComposite(InetUnicastAgentRouteTable *inet_table, const IpAddress &prefix_ip, const int prefix_len, const std::string vrf_name, const AgentPath *path)
Advertises in the Inet table an interface route that arrived via XMPP channel. Must be called only fr...
static void DeleteOldInterfacePath(const IpAddress &prefix_ip, const uint32_t plen, const Peer *peer, EvpnAgentRouteTable *evpn_table)
Routes copying functions.
bool InetRouteNotify(DBTablePartBase *partition, DBEntryBase *e)
Routes leaking functions.
This state tracks all virtual machine interfaces (VmInterface) attached to a Logical Router (LR)...
The structure holds information about virtual networks connected to a logical router (LR) ...
AgentRouteTable * inet6_table_
A pointer to the IPv6 Inet table of a bridge VRF instance.
DBTable::ListenerId vrf_listener_id() const
Returns the ID of the listener to changes in the VrfTable.
VxlanRoutingVrfMapper(VxlanRoutingManager *mgr)
Constructs a new instance of VxlanRoutingVrfMapper using the given pointer to VxlanRoutingManager.
This state tracks inet and evpn table listeners. The state establishes link between Inet tables of a ...
void Shutdown()
Unregisters handlers for events associated with changes in virtual networks (VnTable class) and VRF i...
static void ListAttachedVns()
Prints all virtual networks attached to logical routers.
bool IsHostRouteFromLocalSubnet(const EvpnRouteEntry *rt)
Determines whether the given EVPN route is a host one and belongs to a subnet of a local bridge VRF...
static const AgentPath * FindInterfacePathWithLocalVmPeer(const AgentRoute *inet_rt, bool strict_match=true)
Finds in the given route the path which has the LOCAL_VM_PEER peer type and the Interface nexthop typ...
virtual ~VxlanRoutingVrfMapper()
Destroys an instance of VxlanRoutingVrfMapper().
static bool HasVrfNexthop(const AgentRoute *rt)
Determines whether the given route has the path with a VRF nexthop (VrfNH)
boost::intrusive_ptr< DBTableWalk > DBTableWalkRef
BridgeVnList::iterator BridgeVnListIter
A type for iterator of the list of bridge virtual networks connected to a LR.
void DeleteIpamRoutes(const VnEntry *vn, const std::string &vrf_name, const IpAddress &ipam_prefix, const uint32_t plen)
Delete routes to IPAM, specified by IP prefix and prefix length.
LrVrfInfoMap lr_vrf_info_map_
The map between Logical router UUID and RoutedVrfInfo.
void VmiNotify(DBTablePartBase *partition, DBEntryBase *e)
Handler for changes (new/update/delete) in a VMI (VmInterface class).
InetTableWalker inet4_table_walker_
The set of walkers for Inet IPv4 tables of bridge VRF instances.
bool is_routing_vn_
Returns true when state is associated with a routing VirtualNetwork.
static const Peer * routing_vrf_interface_peer_
Internal data of this class.
void RoutingVrfDeleteAllRoutes(VrfEntry *rt_vrf)
deletes all routes in EVPN table of routing VRF
void DeleteSubnetRoute(const VrfEntry *vrf)
Deletes subnet routes (actually, paths with VrfNH) in the given bridge VRF. This function is demanded...
virtual ~RoutedVrfInfo()
Destroys an instance of RoutedVrfInfo.
std::map< const VnEntry *, boost::uuids::uuid > VnLrSet
A typedef to store map between pointer to VirtualNetwork (a bridge or routing virtual network connect...
VxlanRoutingManager * mgr_
A pointer to the VxlanRoutingManager instance.
bool LeakRoutesIntoBridgeTables(DBTablePartBase *partition, DBEntryBase *e, const boost::uuids::uuid &uuid, const VnEntry *vn, bool update=false)
Performs advertisement and deletion of routing routes (with VrfNH) in bridge VRF instances. External tunnels and routes with a prefix that is not present in bridge VRF instance are selected for leaking.
AgentRouteWalkerPtr walker_
A pointer to the walker to loop over INET tables in bridge VRF instances.
virtual ~VxlanRoutingVnState()
Destroys a VxlanRoutingVnState object.
DBTable::ListenerId vmi_listener_id() const
Returns the ID of the listener to changes in the InterfaceTable.
const EcmpLoadBalance & ecmp_load_balance_
A reference to EcmpLoadBalance of the path.
DBTable::ListenerId inet6_id_
ID of a listener that tracks changes in the IPv6 Inet table of a bridge VRF instance.
bool IsEmpty() const
Determines whether object is empty or not.
TunnelNHKey * AllocateTunnelNextHopKey(const IpAddress &dip, const MacAddress &dmac) const
XMPP Advertising functions.
bool IsVrfLocalRoute(EvpnRouteEntry *routing_evpn_rt, VrfEntry *bridge_vrf)
Determines if the given EVPN route has an interface NH or a composite of interfaces NH that belongs t...
static std::string ipv6_prefix(const std::string &prefix_str)
Extracts an IPv6 address string from the prefix string.
void RoutingVnNotify(const VnEntry *vn, VxlanRoutingVnState *vn_state)
A handler for changes (new/update/delete) in the virtual network from a routing VRF.
static const Peer * routing_vrf_vxlan_bgp_peer_
A pointer to the Peer where all BGP routes are stored.
DBTable::ListenerId vn_listener_id_
An ID of the listener to changes in VnTable.
void BridgeVnNotify(const VnEntry *vn, VxlanRoutingVnState *vn_state)
A handler for changes (new/update/delete) in the virtual network from a bridge VRF.
void WalkBridgeVrfs(const RoutedVrfInfo &routing_vrf_info)
Walks Inet tables of all bridge VRF instances connected to a LR (given in routing_vrf_info parameter)...
void XmppAdvertiseInetRoute(const IpAddress &prefix_ip, const int prefix_len, uint32_t vxlan_id, const std::string vrf_name, const RouteParameters ¶ms, const Peer *bgp_peer)
Advertises an Inet route received using XMPP channel.
boost::uuids::uuid logical_router_uuid_
A UUID of the Logical Router.
std::vector< int > TagList
VnLrSet::iterator VnLrSetIter
A typedef for iterator of VnLrSet.
VxlanRoutingState(VxlanRoutingManager *mgr, VrfEntry *vrf)
Construct new instance using the given VxlanRoutingManager and VRF instance (VrfEntry).