-
Notifications
You must be signed in to change notification settings - Fork 518
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix IPv6 link-local address can't work in VRF
Add/Delete IPv6 link-local route to me in VRF when VRF add/delete to trap packet to CPU
- Loading branch information
Showing
11 changed files
with
1,090 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
#include "fdborch.h" | ||
|
||
const int FdbOrch::fdborch_pri = 20; | ||
|
||
FdbOrch::FdbOrch(DBConnector* applDbConnector, vector<table_name_with_pri_t> appFdbTables, | ||
TableConnector stateDbFdbConnector, TableConnector stateDbMclagFdbConnector, PortsOrch *port) : | ||
Orch(applDbConnector, appFdbTables), | ||
m_portsOrch(port), | ||
m_fdbStateTable(stateDbFdbConnector.first, stateDbFdbConnector.second), | ||
m_mclagFdbStateTable(stateDbMclagFdbConnector.first, stateDbMclagFdbConnector.second) | ||
{ | ||
} | ||
|
||
bool FdbOrch::bake() | ||
{ | ||
return true; | ||
} | ||
|
||
bool FdbOrch::storeFdbEntryState(const FdbUpdate& update) | ||
{ | ||
return true; | ||
} | ||
|
||
void FdbOrch::clearFdbEntry(const FdbEntry& entry) | ||
{ | ||
} | ||
|
||
void FdbOrch::handleSyncdFlushNotif(const sai_object_id_t& bv_id, | ||
const sai_object_id_t& bridge_port_id, | ||
const MacAddress& mac, | ||
const sai_fdb_entry_type_t& sai_fdb_type) | ||
{ | ||
} | ||
|
||
void FdbOrch::update(sai_fdb_event_t type, | ||
const sai_fdb_entry_t* entry, | ||
sai_object_id_t bridge_port_id, | ||
const sai_fdb_entry_type_t &sai_fdb_type) | ||
{ | ||
} | ||
|
||
void FdbOrch::update(SubjectType type, void *cntx) | ||
{ | ||
} | ||
|
||
bool FdbOrch::getPort(const MacAddress& mac, uint16_t vlan, Port& port) | ||
{ | ||
return true; | ||
} | ||
|
||
void FdbOrch::doTask(Consumer& consumer) | ||
{ | ||
} | ||
|
||
void FdbOrch::doTask(NotificationConsumer& consumer) | ||
{ | ||
} | ||
|
||
void FdbOrch::flushFDBEntries(sai_object_id_t bridge_port_oid, | ||
sai_object_id_t vlan_oid) | ||
{ | ||
} | ||
|
||
void FdbOrch::notifyObserversFDBFlush(Port &port, sai_object_id_t& bvid) | ||
{ | ||
} | ||
|
||
void FdbOrch::updatePortOperState(const PortOperStateUpdate& update) | ||
{ | ||
} | ||
|
||
void FdbOrch::updateVlanMember(const VlanMemberUpdate& update) | ||
{ | ||
} | ||
|
||
bool FdbOrch::addFdbEntry(const FdbEntry& entry, const string& port_name, | ||
FdbData fdbData) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FdbOrch::removeFdbEntry(const FdbEntry& entry, FdbOrigin origin) | ||
{ | ||
return true; | ||
} | ||
|
||
void FdbOrch::deleteFdbEntryFromSavedFDB(const MacAddress &mac, | ||
const unsigned short &vlanId, FdbOrigin origin, const string portName) | ||
{ | ||
} | ||
|
||
void FdbOrch::notifyTunnelOrch(Port& port) | ||
{ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
#include "fgnhgorch.h" | ||
|
||
FgNhgOrch::FgNhgOrch(DBConnector *db, DBConnector *appDb, DBConnector *stateDb, vector<table_name_with_pri_t> &tableNames, NeighOrch *neighOrch, IntfsOrch *intfsOrch, VRFOrch *vrfOrch) : | ||
Orch(db, tableNames), | ||
m_neighOrch(neighOrch), | ||
m_intfsOrch(intfsOrch), | ||
m_vrfOrch(vrfOrch), | ||
m_stateWarmRestartRouteTable(stateDb, STATE_FG_ROUTE_TABLE_NAME), | ||
m_routeTable(appDb, APP_ROUTE_TABLE_NAME) | ||
{ | ||
} | ||
|
||
void FgNhgOrch::update(SubjectType type, void *cntx) | ||
{ | ||
} | ||
|
||
bool FgNhgOrch::bake() | ||
{ | ||
return true; | ||
} | ||
|
||
void FgNhgOrch::calculateBankHashBucketStartIndices(FgNhgEntry *fgNhgEntry) | ||
{ | ||
} | ||
|
||
void FgNhgOrch::setStateDbRouteEntry(const IpPrefix &ipPrefix, uint32_t index, NextHopKey nextHop) | ||
{ | ||
} | ||
|
||
bool FgNhgOrch::writeHashBucketChange(FGNextHopGroupEntry *syncd_fg_route_entry, uint32_t index, sai_object_id_t nh_oid, | ||
const IpPrefix &ipPrefix, NextHopKey nextHop) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::createFineGrainedNextHopGroup(FGNextHopGroupEntry &syncd_fg_route_entry, FgNhgEntry *fgNhgEntry, | ||
const NextHopGroupKey &nextHops) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::removeFineGrainedNextHopGroup(FGNextHopGroupEntry *syncd_fg_route_entry) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::modifyRoutesNextHopId(sai_object_id_t vrf_id, const IpPrefix &ipPrefix, sai_object_id_t next_hop_id) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::validNextHopInNextHopGroup(const NextHopKey& nexthop) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::invalidNextHopInNextHopGroup(const NextHopKey& nexthop) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::setActiveBankHashBucketChanges(FGNextHopGroupEntry *syncd_fg_route_entry, FgNhgEntry *fgNhgEntry, | ||
uint32_t bank, uint32_t syncd_bank, std::vector<BankMemberChanges> bank_member_changes, | ||
std::map<NextHopKey,sai_object_id_t> &nhopgroup_members_set, const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::setInactiveBankToNextAvailableActiveBank(FGNextHopGroupEntry *syncd_fg_route_entry, FgNhgEntry *fgNhgEntry, | ||
uint32_t bank, std::vector<BankMemberChanges> bank_member_changes, | ||
std::map<NextHopKey,sai_object_id_t> &nhopgroup_members_set, const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::setInactiveBankHashBucketChanges(FGNextHopGroupEntry *syncd_fg_route_entry, FgNhgEntry *fgNhgEntry, | ||
uint32_t bank,std::vector<BankMemberChanges> &bank_member_changes, | ||
std::map<NextHopKey,sai_object_id_t> &nhopgroup_members_set, const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::computeAndSetHashBucketChanges(FGNextHopGroupEntry *syncd_fg_route_entry, | ||
FgNhgEntry *fgNhgEntry, std::vector<BankMemberChanges> &bank_member_changes, | ||
std::map<NextHopKey,sai_object_id_t> &nhopgroup_members_set, | ||
const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::setNewNhgMembers(FGNextHopGroupEntry &syncd_fg_route_entry, FgNhgEntry *fgNhgEntry, | ||
std::vector<BankMemberChanges> &bank_member_changes, std::map<NextHopKey,sai_object_id_t> &nhopgroup_members_set, | ||
const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::isRouteFineGrained(sai_object_id_t vrf_id, const IpPrefix &ipPrefix, const NextHopGroupKey &nextHops) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::syncdContainsFgNhg(sai_object_id_t vrf_id, const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::setFgNhg(sai_object_id_t vrf_id, const IpPrefix &ipPrefix, const NextHopGroupKey &nextHops, | ||
sai_object_id_t &next_hop_id, bool &isNextHopIdChanged) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::removeFgNhg(sai_object_id_t vrf_id, const IpPrefix &ipPrefix) | ||
{ | ||
return true; | ||
} | ||
|
||
vector<FieldValueTuple> FgNhgOrch::generateRouteTableFromNhgKey(NextHopGroupKey nhg) | ||
{ | ||
vector<FieldValueTuple> fvVector; | ||
return fvVector; | ||
} | ||
|
||
void FgNhgOrch::cleanupIpInLinkToIpMap(const string &link, const IpAddress &ip, FgNhgEntry &fgNhg_entry) | ||
{ | ||
} | ||
|
||
bool FgNhgOrch::doTaskFgNhg(const KeyOpFieldsValuesTuple & t) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::doTaskFgNhgPrefix(const KeyOpFieldsValuesTuple & t) | ||
{ | ||
return true; | ||
} | ||
|
||
bool FgNhgOrch::doTaskFgNhgMember(const KeyOpFieldsValuesTuple & t) | ||
{ | ||
return true; | ||
} | ||
|
||
void FgNhgOrch::doTask(Consumer& consumer) | ||
{ | ||
} |
Oops, something went wrong.