5 #ifndef vnsw_agent_nh_ksync_h
6 #define vnsw_agent_nh_ksync_h
8 #include <boost/asio.hpp>
9 #include <boost/bind/bind.hpp>
20 #include "vr_nexthop.h"
22 using namespace boost::placeholders;
29 static const int kDefaultNhMsgSize = 4096;
30 static const int MAX_VR_PHY_INTF = 3;
42 return interface_list_;
45 return encap_valid_list_;
53 virtual std::string
ToString()
const;
56 virtual int AddMsg(
char *buf,
int buf_len);
57 virtual int ChangeMsg(
char *buf,
int buf_len);
58 virtual int DeleteMsg(
char *buf,
int buf_len);
60 uint32_t
nh_id()
const {
return nh_id_;}
62 const int32_t index=-1);
68 return kDefaultNhMsgSize * ((component_nh_list_.size() / 128) + 1);
70 uint8_t SetEcmpFieldsToUse();
71 bool KSyncEntrySandesh(
Sandesh *resp);
74 void SetKSyncNhListSandeshData(KSyncNhListSandeshData *data)
const;
78 label_(label), nh_(entry) {
146 static const int kNHIndexCount = NH_TABLE_ENTRIES;
154 void RegisterDBClients();
boost::asio::ip::address IpAddress
static bool IsLess(const ShowRoute &lhs, const ShowRoute &rhs, const BgpSandeshContext *bsc, const string &table_name)
boost::intrusive_ptr< KSyncEntry > KSyncEntryPtr
NHKSyncEntry * nh() const
KSyncComponentNH(uint32_t label, KSyncEntry *entry)
NextHop::Type type() const
bool layer2_control_word_
std::vector< KSyncEntryPtr > interface_list_
bool flood_unknown_unicast_
TunnelType::Type transport_tunnel_type_
DISALLOW_COPY_AND_ASSIGN(NHKSyncEntry)
KSyncComponentNHList component_nh_list_
KSyncEntryPtr pbb_child_nh_
EcmpHashFields ecmp_hash_fieds_
ComponentNHKeyList component_nh_key_list_
bool crypt_path_available_
std::vector< int32_t > encap_valid_list_
std::vector< int32_t > encap_valid_list() const
InterfaceKSyncEntry * interface() const
bool is_vxlan_routing() const
std::vector< KSyncEntryPtr > interface_list() const
NHKSyncObject * ksync_obj_
InterfaceKSyncEntry * crypt_interface() const
KSyncEntryPtr crypt_interface_
std::vector< KSyncComponentNH > KSyncComponentNHList
COMPOSITETYPE CompositeType() const
std::vector< MacAddress > dmac_list_
DISALLOW_COPY_AND_ASSIGN(NHKSyncObject)
std::vector< ComponentNHKeyPtr > ComponentNHKeyList
std::vector< InterfaceKSyncEntry > InterfaceKSyncEntryList
static string ToString(PhysicalDevice::ManagementProtocol proto)