[fdb & vstest/mirror] Populate FdbEntry port_name in APPL_DB SET path #1827
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I did it
In setting fdb entry via APPL_DB, which is used by warm-reboot and vs test, restore populating FdbEntry
port_name
, the operation of which was introduced in #1242, but removed (by mistake) in #1275.Due to the absence of
port_name
, the corresponding entry is not notified at port oper status change for (synchronous) neighbor flush (to NeighborOrch) nor for (asynchronous)FDB_CHANGE
update (to MirrorOrch), the latter of which matters if the port serves as a mirror monitor port.Missing
port_name
for FdbEntry created from APPL_DB SET pathWhat I did
Extend vs test coverage for mirror monitor port in directly connected vlan subnet:
Fix space in syslog message
How I verified it
vs test
Details if related
In [DPB/VLAN] Add test VS cases and fix FDB flush issues #1242, port oper status change on vlan member port triggers fdb flush on that port, which further triggers neighbor flush. An asynchronous fdb event (FLUSHED event in the vs case) will be notified from sai/asic, and triggers update to observers. If the port serves as a mirror monitor port, we expect mirror session to be removed from sai/asic.
FdbEntry
port_name
does not participate in key equivalence comparison as dicated byFdbEntry::operator==()
vs test failure log before the change