57 VirtualGatewayConfigTable::Table::iterator it =
65 it->set_interface(intf);
78 it->routes(), empty_list,
true,
false);
81 empty_list, it->routes(),
false,
true);
88 SubnetUpdate(it->vrf_name(), rt_table, it->subnets(), empty_list);
91 SubnetUpdate(it->vrf_name(), rt_table, empty_list, it->subnets());
105 VirtualGatewayConfigTable::Table::iterator it;
107 for (it = table.begin(); it != table.end(); it++) {
127 VirtualGatewayConfigTable::Table::iterator it;
129 for (it = table.begin(); it != table.end(); it++) {
135 const std::string &vrf_name,
167 for (uint32_t idx = 0; idx < add_list.size(); idx++) {
169 add_list[idx].plen_);
171 boost::uuids::nil_uuid(),
176 addr, add_list[idx].plen_,
179 for (uint32_t idx = 0; idx < del_list.size(); idx++) {
181 del_list[idx].plen_);
183 addr, del_list[idx].plen_, NULL);
192 bool add_default_route) {
199 RouteUpdate(vgw, new_list.size(), rt_table, add_list, del_list,
200 add_default_route,
true);
205 uint32_t new_list_size,
209 bool add_default_route,
bool del_default_route) {
212 if (vgw.
routes().size() == 0 && del_default_route) {
216 }
else if (new_list_size == 0 && add_default_route) {
225 for (uint32_t idx = 0; idx < del_list.size(); idx++) {
227 del_list[idx].plen_);
229 addr, del_list[idx].plen_, NULL);
231 for (uint32_t idx = 0; idx < add_list.size(); idx++) {
233 add_list[idx].plen_);
250 VirtualGatewayConfigTable::Table::iterator it;
252 for (it = table.begin(); it != table.end(); it++) {
255 it->interface_name());
void SubnetUpdate(const VirtualGatewayConfig &vgw, const VirtualGatewayConfig::SubnetList &add_list, const VirtualGatewayConfig::SubnetList &del_list)
const SubnetList & routes() const
void CreateVrf(const string &name, const boost::uuids::uuid &vn_uuid, uint32_t flags)
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
void DeleteVrf(const string &name, uint32_t flags=VrfData::ConfigVrf)
void SetState(DBTableBase *tbl_base, ListenerId listener, DBState *state)
void CreateInterfaces(Interface::Transport transport)
void DeleteInterface(const std::string &interface_name)
const std::string & vhost_interface_name() const
InterfaceTable * interface_table() const
void DeleteStaticVrf(const string &name)
static Ip4Address GetIp4SubnetAddress(const Ip4Address &prefix, uint16_t plen)
static void AddVHostRecvRouteReq(const Peer *peer, const string &vrf, const InterfaceKey &interface, const IpAddress &addr, uint8_t plen, const string &vn_name, bool policy, bool native_encap)
InetUnicastAgentRouteTable * GetInet4UnicastRouteTable(const std::string &vrf_name)
void RouteUpdate(const VirtualGatewayConfig &vgw, const VirtualGatewayConfig::SubnetList &new_list, const VirtualGatewayConfig::SubnetList &add_list, const VirtualGatewayConfig::SubnetList &del_list, bool add_default_route)
ListenerId Register(ChangeCallback callback, const std::string &name="unspecified")
const std::string & fabric_vrf_name() const
static void Create(InterfaceTable *table, const std::string &ifname, SubType sub_type, const std::string &vrf_name, const Ip4Address &addr, int plen, const Ip4Address &gw, const std::string &xconnect, const std::string &vn_name, Interface::Transport transport)
const std::string & interface_name() const
static const std::string & NullString()
const Peer * vgw_peer() const
const Table & table() const
AgentParam * params() const
std::set< std::string > VnListType
static void DeleteReq(const Peer *peer, const string &vrf_name, const IpAddress &addr, uint8_t plen, AgentRouteData *data)
void ClearState(DBTableBase *tbl_base, ListenerId listener)
boost::asio::ip::address_v4 Ip4Address
void InterfaceNotify(DBTablePartBase *partition, DBEntryBase *entry)
VrfTable * vrf_table() const
VirtualGatewayConfigTable * vgw_config_table_
void CreateInterface(const std::string &interface_name, const std::string &vrf_name, Interface::Transport transport)
VirtualGateway(Agent *agent)
void AddInetInterfaceRouteReq(const Peer *peer, const string &vm_vrf, const Ip4Address &addr, uint8_t plen, InetInterfaceRoute *data)
std::set< VirtualGatewayConfig, VirtualGatewayConfigCompare > Table
const std::string & name() const
std::vector< Subnet > SubnetList
const InetInterface * get_interface() const
DBTableBase::ListenerId listener_id_
VirtualGatewayConfigTable * vgw_config_table() const
void DeleteVrf(const std::string &vrf_name)
const std::string & vrf_name() const