58 VirtualGatewayConfigTable::Table::iterator it =
66 it->set_interface(intf);
79 it->routes(), empty_list,
true,
false);
82 empty_list, it->routes(),
false,
true);
89 SubnetUpdate(it->vrf_name(), rt_table, it->subnets(), empty_list);
92 SubnetUpdate(it->vrf_name(), rt_table, empty_list, it->subnets());
106 VirtualGatewayConfigTable::Table::iterator it;
108 for (it = table.begin(); it != table.end(); it++) {
128 VirtualGatewayConfigTable::Table::iterator it;
130 for (it = table.begin(); it != table.end(); it++) {
136 const std::string &vrf_name,
168 for (uint32_t idx = 0; idx < add_list.size(); idx++) {
170 add_list[idx].plen_);
172 boost::uuids::nil_uuid(),
177 addr, add_list[idx].plen_,
180 for (uint32_t idx = 0; idx < del_list.size(); idx++) {
182 del_list[idx].plen_);
184 addr, del_list[idx].plen_, NULL);
193 bool add_default_route) {
200 RouteUpdate(vgw, new_list.size(), rt_table, add_list, del_list,
201 add_default_route,
true);
206 uint32_t new_list_size,
210 bool add_default_route,
bool del_default_route) {
213 if (vgw.
routes().size() == 0 && del_default_route) {
217 }
else if (new_list_size == 0 && add_default_route) {
226 for (uint32_t idx = 0; idx < del_list.size(); idx++) {
228 del_list[idx].plen_);
230 addr, del_list[idx].plen_, NULL);
232 for (uint32_t idx = 0; idx < add_list.size(); idx++) {
234 add_list[idx].plen_);
251 VirtualGatewayConfigTable::Table::iterator it;
253 for (it = table.begin(); it != table.end(); it++) {
256 it->interface_name());
boost::asio::ip::address_v4 Ip4Address
std::set< std::string > VnListType
static Ip4Address GetIp4SubnetAddress(const Ip4Address &prefix, uint16_t plen)
VirtualGatewayConfigTable * vgw_config_table() const
InterfaceTable * interface_table() const
AgentParam * params() const
VrfTable * vrf_table() const
const std::string & vhost_interface_name() const
const Peer * vgw_peer() const
static const std::string & NullString()
const std::string & fabric_vrf_name() const
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
void ClearState(DBTableBase *tbl_base, ListenerId listener)
void SetState(DBTableBase *tbl_base, ListenerId listener, DBState *state)
ListenerId Register(ChangeCallback callback, const std::string &name="unspecified")
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)
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)
void AddInetInterfaceRouteReq(const Peer *peer, const string &vm_vrf, const Ip4Address &addr, uint8_t plen, InetInterfaceRoute *data)
static void DeleteReq(const Peer *peer, const string &vrf_name, const IpAddress &addr, uint8_t plen, AgentRouteData *data)
const std::string & name() const
const Table & table() const
std::set< VirtualGatewayConfig, VirtualGatewayConfigCompare > Table
const InetInterface * get_interface() const
const SubnetList & routes() const
const std::string & vrf_name() const
const std::string & interface_name() const
std::vector< Subnet > SubnetList
void CreateInterface(const std::string &interface_name, const std::string &vrf_name, Interface::Transport transport)
VirtualGatewayConfigTable * vgw_config_table_
void RouteUpdate(const VirtualGatewayConfig &vgw, const VirtualGatewayConfig::SubnetList &new_list, const VirtualGatewayConfig::SubnetList &add_list, const VirtualGatewayConfig::SubnetList &del_list, bool add_default_route)
void SubnetUpdate(const VirtualGatewayConfig &vgw, const VirtualGatewayConfig::SubnetList &add_list, const VirtualGatewayConfig::SubnetList &del_list)
void DeleteVrf(const std::string &vrf_name)
DBTableBase::ListenerId listener_id_
void CreateInterfaces(Interface::Transport transport)
void InterfaceNotify(DBTablePartBase *partition, DBEntryBase *entry)
VirtualGateway(Agent *agent)
void DeleteInterface(const std::string &interface_name)
void DeleteVrf(const string &name, uint32_t flags=VrfData::ConfigVrf)
void DeleteStaticVrf(const string &name)
void CreateVrf(const string &name, const boost::uuids::uuid &vn_uuid, uint32_t flags)
InetUnicastAgentRouteTable * GetInet4UnicastRouteTable(const std::string &vrf_name)