-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VOQ Inband interface support. #2
base: chassis-voq-pr1
Are you sure you want to change the base?
Conversation
} | ||
|
||
//Sync the neighbor to add to the CHASSIS_APP_DB | ||
voqSyncAddNeigh(alias, ip_address, inband_mac, neighbor_entry); | ||
|
||
return true; | ||
} | ||
|
||
bool NeighOrch::delInbandNeighbor(string alias, IpAddress ip_address) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add comment to explain that this API is for local inband interface.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
portsyncd/linksync.cpp
Outdated
if (key.compare(0, INTFS_PREFIX.length(), INTFS_PREFIX) && | ||
key.compare(0, LAG_PREFIX.length(), LAG_PREFIX) && | ||
key.compare(0, MGMT_PREFIX.length(), MGMT_PREFIX)) | ||
key.compare(0, MGMT_PREFIX.length(), MGMT_PREFIX) && | ||
!m_portTable.get(key, temp)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have hardcoded prefix "Inband" instead of considering all the names from PORT table.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
{ | ||
return; | ||
} | ||
|
||
unsigned int flags = rtnl_link_get_flags(link); | ||
bool admin = flags & IFF_UP; | ||
bool oper = flags & IFF_LOWER_UP; | ||
bool oper = flags & IFF_RUNNING; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove this change from this PR. Raise separate issue on sonic-buildimage fix this as part of the Issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Issue sonic-net/sonic-buildimage#6295 raised to request to change to IFF_RUNNING and PR sonic-net#1568 has the changes
portsyncd/linksync.cpp
Outdated
if (m_portTable.get(key, temp)) | ||
{ | ||
g_portSet.erase(key); | ||
FieldValueTuple tuple("state", "ok"); | ||
vector<FieldValueTuple> vector; | ||
vector.push_back(tuple); | ||
FieldValueTuple op("oper_status", oper ? "up" : "down"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename "oper_status" attribute to "netdev_oper_status" to avoid confusion with "oper_status" in "PORT_TABLE" in app db.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
…ynchronization... (sonic-net#1431) This PR includes implementation of System ports initialization & orchestration, Interface & Neighbor Synchronization using GLOBAL_APP_DB, Inband Interface Configuration. HLD: sonic-net/SONiC#639 Dependency PR's (sonic-swss-common): sonic-net/sonic-swss-common#380 (sonic-sairedis): sonic-net/sonic-sairedis#657 * [voq] Redis instance for global app db * [voq] System port init and orchestration * [voq] Router interface for system ports, global app db sync * [voq] Inband interface config * [voq] System port neighbors Kernel programming of static neigh and full mask static route for system neighbors is moved to nbrmgr since orchagent should not own kernel objects to avoid complication in warmboot reconciliation The orchagent programs only SAI object for the system neighbors and signals the completion of SAI programming by setting mac address in SYSTE_NEIGH table of STATE_DB. Nbrmgr subscribes to these state entries to program kernel entries corresponding to the system neighs * [swss]VS tests for VOQ system ports The following tests are added as part of virtual chassis tests - VOQ switch objects verification - System port object syncing with chassis app db by checking presence of system port RIFs in chassis app db in supervisor card - Creation of system port RIF record creation in ASIC_DB Following changes are done for the above tests: - SYSTEM_PORT table is added in default_config.json of line cards. These are loaded as part of config_db loading - Core and Port index mapping file is added in line card directories. - use dvs_database.py lib to connect to redis databases instead of using raw connection via swsscommon DBConnectors. - call dvs apis to get access to databases for the local redis instances. - Default handling for speed of the system port is removed in addSystemPorts() - Comment added to clarify types of rif-s synced to chassis app db - vs tests: connection to chassis app dp uses chassis app db id defined in dvs lib instead of using the id from swsscommon Using the chassis app db id from swsscommon instead of chassis app db id from dvd lib . This is to avoid python lgtm alert and test failure. Co-authored-by: vedganes <[email protected]> Co-authored-by: vganesan-nokia <[email protected]>
f746bdc
to
027d350
Compare
What I did Add new options to specify swss rec and sairedis rec file name. Corresponding change in sairedis sonic-net/sonic-sairedis#747 Why I did it This option will be used in the multi asic system. The swss and sairedis record filename will be different for each asic and will be passed from the orchagent.sh
* Enhancement and bug fixes for dynamic buffer calculation What I did - Remove make_pair when calling emplace_back. - The pool size isn't recalculated when a port with headroom override but without speed or cable length configured being shutdown. - Remove the current PG from the old referenced profile only if its name isn't empty, otherwise an entry with empty name will be inserted into m_bufferProfileLookup - Don't try removing statically configured profiles with dynamic headroom from the APPL_DB because they were not programmed to APPL_DB. - Setting a buffer PG to the same profile as it was causes the referenced dynamic profile unable to be removed once it isn't referenced any more How I verified it Run regression and vs test Signed-off-by: Stephen Sun <[email protected]>
Fix sonic-net/sonic-buildimage#6483 An FRR behavior change from 7.2 to 7.5 makes FRR update the default route to eth0 in interface up/down events. Skipping routes to eth0 or docker0 to avoid such behavior.
…t#1613) Signed-off-by: Prabhu Sreenivasan <[email protected]>
…et#1614) What I did: Use reference count for protect interface, If interface bind to ACL the reference will increase and vice versa. Why I did it: If interface bind to ACL and remove LAG causes the ACL rule become global rule to match all interfaces. How I verified it: Run the pytest check ACL and Port test case passed.
Configure SAI_HOSTIF_VLAN_TAG_KEEP for the parent port hostif when a first subport is added and restore it to SAI_HOSTIF_VLAN_TAG_STRIP when the last subport is removed. Signed-off-by: Vitaliy Senchyshyn <[email protected]>
Add MACsec Manager for MACsec feature. MACsecMgr is a daemon in MACsec container, that receives the message from CONFIG DB and uses wpa_cli instructions to manage the functionality of MACsec in the specified port. The below figure is the flow chart of MACsecMgr which shows the MACsec profile management according to MACsec Profile Table and the functionality of MACsec in the specified port according to PortTable. The main functions are defined in class MACsecMgr as follow ``` task_process_status removeProfile(const std::string & profile_name, const TaskArgs & profile_attr); task_process_status loadProfile(const std::string & profile_name, const TaskArgs & profile_attr); task_process_status enableMACsec(const std::string & port_name, const TaskArgs & port_attr); task_process_status disableMACsec(const std::string & port_name, const TaskArgs & port_attr); ``` The HLD of MACsec Manager is at [MACsec HLD](https://github.com/Azure/SONiC/blob/master/doc/macsec/MACsec_hld.md#341-macsec-mgr) Signed-off-by: Ze Gan <[email protected]>
Add MACsec orchagent for MACsec feature. The MACsecOrch is introduced in the Orchagent to handle configuration requests. It monitors MACsec related tables in APP DB and convert those messages to SAI commands to manage the MACsec object. The main functions are defined in class MACsecOrch as follow ``` task_process_status taskUpdateMACsecPort(const std::string & port_name, const TaskArgs & port_attr); task_process_status taskDisableMACsecPort(const std::string & port_name, const TaskArgs & port_attr); task_process_status taskUpdateEgressSC(const std::string & port_sci, const TaskArgs & sc_attr); task_process_status taskDeleteEgressSC(const std::string & port_sci, const TaskArgs & sc_attr); task_process_status taskUpdateIngressSC(const std::string & port_sci, const TaskArgs & sc_attr); task_process_status taskDeleteIngressSC(const std::string & port_sci, const TaskArgs & sc_attr); task_process_status taskUpdateEgressSA(const std::string & port_sci_an, const TaskArgs & sa_attr); task_process_status taskDeleteEgressSA(const std::string & port_sci_an, const TaskArgs & sa_attr); task_process_status taskUpdateIngressSA(const std::string & port_sci_an, const TaskArgs & sa_attr); task_process_status taskDeleteIngressSA(const std::string & port_sci_an, const TaskArgs & sa_attr); ``` The HLD of MACsec orchagent is at [MACsec HLD](https://github.com/Azure/SONiC/blob/master/doc/macsec/MACsec_hld.md#344-macsec-orch) Signed-off-by: Ze Gan <[email protected]>
…LAN delete (sonic-net#1618) Modified SWSS error log to Notice log during FDB flush notification after VLAN delete Co-authored-by: Madhan Babu <[email protected]>
Reduce loglevel to DEBUG for eth0 route update. Ref PR: sonic-net#1606
1. Fix bug about the return value of `get_value`, it should return `true` if it's OK 2. Fix bug about the type of `MACsecProfile::priority`, the original `uint8_t` will cause a `lexical_convert` failure when the priority is a integer. 3. Polish log in `get_value`. 4. Change the predefined paths for sonic-buildimage integration Signed-off-by: Ze Gan <[email protected]>
…c-net#1615) Program/Reprogram routes to hardware based on Mux status Create tunnel interface (tun0) in kernel Add/remove tunnel routes in kernel
…nic-net#1581) * Support shared headroom pool on top of dynamic buffer calculation - Feature is enabled/disabled on-the-fly by configuring over-subscribe-ration and shared headroom pool size. If both are configured, the shared headroom pool size will take effect. When turn on/off the feature, all the lossless profiles and buffer pool size will be recalculated. - Support calculating shared headroom pool while ingress lossless pool is statically configured. - Check accumulative headroom before toggling SHP state To disable SHP results in size of PG increasing. Hence needs to check whether accumulative headroom exceed limit - Split the function doUpdateStaticProfileTask into two functions Originally it was called for static profile only and consisted of two parts: - One is for dynamic th updated. It will go over all the buffer profiles dynamically generated according to the dynamic th and update them - The other is for size updated. It will go over each port referencing the profile and check whether the accumulative headroom exceeds limit Now that it is also called by shared headroom pool, we split it into two functions to make it more clear Signed-off-by: Stephen Sun <[email protected]> How I verified it Run vs test and regression test.
* Support maximum port headroom checking - Fetch the maximum port headroom via fetching the port attribute SAI_PORT_ATTR_QOS_MAXIMUM_HEADROOM_SIZE when the orchagent starts and push the data into STATE_DB - Check the accumulative port headroom against the maximum headroom in buffer_check_headroom_<vendor>.lua On Mellanox platform, this PR depends on PR #6566 to be merged. In that PR the required SAI attribute is supported. On other platforms, there is no dependency. Signed-off-by: Stephen Sun [email protected] Why I did it On some platforms, the SAI will notify orchagent shut down if a headroom size that causes the accumulative port headroom to exceed its limit is programmed to SAI. To avoid that, we need to check this before programming it to SAI. How I verified it Run the regression test.
This file was refactored in sairedis repo to SaiAttributeList.h proper class
Co-authored-by: dgsudharsan <[email protected]>
…net#1632) SAI attribute SAI_SWITCH_ATTR_NUMBER_OF_SYSTEM_PORTS is not supported on many platforms, and the call to getSystemPorts() throws error. This error is not harmful at this state, and therefore the log level is changed from ERROR to INFO.
Signed-off-by: Guohan Lu <[email protected]>
01bb267
to
3030ee0
Compare
* Mux neighbor handling based on FDB entry
Signed-off-by: Guohan Lu <[email protected]>
Signed-off-by: Guohan Lu <[email protected]>
- What I did Added 200G entry into the speed-rate map. Also handled the case which programs empty string into APP-DB and thus leading to a failure of Orchagent. Default Sampling rate for 200G is set to 20000 - Why I did it Fix for Issue: sonic-net/sonic-buildimage#6793 - How I verified it run sflow community test under sonic-mgmt Co-authored-by: Vivek Reddy Karri <[email protected]>
What I did Add SAI failure handling functions in aclorch, bufferorch, copporch, dtelorch, fdborch, fgnhgorch, intfsorch, mirrororch, natorch, policerorch, macsecorch, portsorch, qosorch, sfloworch, switchorch, tunneldecaporch, vrforch. Why I did it Failure notification mechanism to ensure enough notifications in the presence of SAI failures and avoid running switches with unhandled failures.
* [voq/systemlag] VOQ System lag functionality Signed-off-by: vedganes <[email protected]> Changes for voq system lag implementation (1) Portsorch changes for allocating unique lag id from chassis ap pdb and sending the id in system port aggregator id attribute while creating lag local LAG (2) Portsorch changes to synd local LAG and local LAG members to chassis app db. The sync-ing includes the allocated unique system lag id (3) Portsorch changes to process remote system lag from chassis app db and create lag entry in local asic db with received system lag id (4) Interface orch changes to identify local or remote interfaces (for both port and lag) (5) Orchdaemon changes in orchagent intialization to get hostname and asic_name attributes from DEVICE_METATDATA. These are used for unique system lag name derivation * [vog/systemlag] VS test for system lag
d33d548
to
8248ed1
Compare
What I did Bug: The buffermgrd can keep adding suffix to the buffer pool reference if the buffer pool isn't found when it is being referenced. In most of the cases, it's caused by wrong configuration. Cause: In handleBufferProfileTable, the value of each field is designated by a (lvalue) reference to the object in the tuple, which means the object in the tuple will be changed if the value is changed in the function. Fix: Pass the value of each field by value instead of reference. - Why I did it Fix bug. - How I verified it Manually test. Signed-off-by: Stephen Sun [email protected]
…ialization hasn't finished yet (sonic-net#1685) Bug: The buffer pools will be created after a short timer and then won't be updated until the initialization has finished. This is to avoid repeatedly updating buffer pools after BUFFER_PG and BUFFER_QUEUE have been created for each port. However, when the ingress_lossless_pool is created it will trigger the buffer pools to be updated for shared headroom pool. If this happens during intialization, it causes all the buffer pools created after ingress_lossless_pool won't be created until the initialization has been done. Fix: Don't trigger updating buffer pools when creating ingress_lossless_pool during intialization. Signed-off-by: Stephen Sun <[email protected]>
According the PR: SONiC#746, the sample rate should be "ifSpeed / 1e6". Signed-off-by: Fred Yu [email protected]
This is possible workaround for cross compile issues with json.hpp symbols generated on armhf architecture.
in other pipelines, they will download swss and pytests. this is make sure the swss.deb and pytests are matched. Signed-off-by: Guohan Lu <[email protected]>
…ble (sonic-net#1688) What I did: Skip DVS MACSEC test case till macsec orch code is made compatible with SAI v1.8.0 Why I did: Without this sai-redis PR build fails because of DVS VS test. This change will resolve dead-lock between swss and sai-redis repo PR to get merged.
…c-net#1693) * Improve coding styles - Add one space between "//" and the comments - Use capital letter at the beginning of sentence - refreshPriorityGroupsForPort => refreshPgsForPort * Fix LGTM alerts Signed-off-by: Stephen Sun <[email protected]>
…es configuration to process (sonic-net#1695) * fix intfmgrd reconciliation when there are no interfaces in the system Signed-off-by: Stepan Blyschak <[email protected]>
* [vlan] Add support of VLAN host interface * Infrastructure needed for the VNET ping tool Signed-off-by: Volodymyr Samotiy <[email protected]>
Changes to fix system lag test failure issue reported by issues sonic-net#1687. Fixed time sleep after creating and deleting system lag is replaced by DVS's wait_for_n_keys() functions Signed-off-by: vedganes <[email protected]>
…et#1655) Issue : CRM used counters are not getting updated for SNAT and DNAT entries Steps to recreate: Add a static NAT entry and verify the CRM counters root@sonic:/home/admin# config nat feature enable root@sonic:/home/admin# config interface ip add Ethernet9 12.12.0.1/24 root@sonic:/home/admin# config interface ip add Ethernet11 125.56.90.12/24 root@sonic:/home/admin# config nat add interface Ethernet11 -nat_zone 1 root@sonic:/home/admin# root@sonic:/home/admin# config nat add static basic 125.56.90.8 12.12.0.2 root@sonic:/home/admin# show nat translations Static NAT Entries ..................... 2 Static NAPT Entries ..................... 0 Dynamic NAT Entries ..................... 0 Dynamic NAPT Entries ..................... 0 Static Twice NAT Entries ..................... 0 Static Twice NAPT Entries ..................... 0 Dynamic Twice NAT Entries ..................... 0 Dynamic Twice NAPT Entries ..................... 0 Total SNAT/SNAPT Entries ..................... 1 Total DNAT/DNAPT Entries ..................... 1 Total Entries ..................... 2 Protocol Source Destination Translated Source Translated Destination ---------- --------- ------------- ------------------- ------------------------ all 12.12.0.2 --- 125.56.90.8 --- all --- 125.56.90.8 --- 12.12.0.2 root@sonic:/home/admin# =============After polling interval of 300 seconds ======== root@sonic:/home/admin# crm show resources snat Resource Name Used Count Available Count --------------- ------------ ----------------- snat_entry 0 1024 root@sonic:/home/admin# root@sonic:/home/admin# crm show resources dnat Resource Name Used Count Available Count --------------- ------------ ----------------- dnat_entry 0 1024 root@sonic:/home/admin# Fix: Increment/Decrement the crm used counters for snat/dnat entries when entry is created/deleted. Repeated the same steps to add static nat entry like above and verified the crm counters. root@sonic:/home/admin# crm show resources dnat Resource Name Used Count Available Count --------------- ------------ ----------------- dnat_entry 1 1023 root@sonic:/home/admin# crm show resources snat Resource Name Used Count Available Count --------------- ------------ ----------------- snat_entry 1 1023 root@sonic:/home/admin# Signed-off-by: Akhilesh Samineni [email protected]
Changes update switch statement in CrmOrch::getResAvailableCounters() to use CrmResourceType enum which guarantees the uniqueness of labels in the switch statement.
Signed-off-by: vedganes <[email protected]> Changes are done to: (1) Setup inband interface - applicable for both port type and vlan type (2) Add neighbors for inband interface and sync to chassis app db (3) Postpone neighbor programming both in kernel and in asic for remote neighbors till inband interface is operationally up. (4) Update "oper" state in STATE DB for Inband interface
Signed-off-by: vedganes <[email protected]> Changes done to handle procssing specific to port type inband interface
Signed-off-by: vedganes <[email protected]> - Added tests for inband if (port type) and remote neigh programming in asic db and kernel - Fixed switch_id values in the system port config.
Signed-off-by: vedganes <[email protected]> Fixed code review comments: - Added comment to delInbandNeighbor() to indicate this is for local inband interface - Used hardcoded "Inband" prefix - Reverted to net dev link up event detection using IFF_LOWER_UP flag - Renamed "oper_status" of net dev to "netdev_oper_status" in the state db PORT_TABLE.
Signed-off-by: vedganes <[email protected]> Based on review comments Recyle port HLD (sonic-net/SONiC#742) the inband port name prefix is changed from Inband to "Ethernet-IB" similar to what we have for Ethernet-BP (Ethernet-Backplane) in multi-asic design. Because of this changes, we no longer need "INBAND_PREFIX" definition since Ethernet-IB is covered in "INTFS_PREIFX"
Signed-off-by: vedganes <[email protected]> Added vs test case for system neigh delete
Signed-off-by: vedganes <[email protected]> Changes done to delete kernel neigh when there is failure in adding kernel neigh for voq system neighbors if kernel entry already exists. When there is mac change, system neighs are synced with changed mac. With voq inband port type, static neighbor for this system neighbors are added in kernel always with single chassis mac address. So to take care of skpping adding neighbor we delete the kernel neighbor so that next re-try will program the neighbor and hence the route addition will proceed.
Signed-off-by: vedganes <[email protected]>
VOQ System neighbor delete test is piggy backed to existing system neigh test. This test also is the cleanup for the existing system neigh test Signed-off-by: vedganes <[email protected]>
- Changes to avoid calling function to add encap index attribute for inband interface host neighbor. Since encap index attribute is supplied only for the remote neighbors and since the inband interface neighbor is local, encap index will not be added even if this function is called. So removed calling the api addVoqEncapIndex() while constructing neighbor add message for inband interface host. - Changes in vs test for system neigh delete to avoid timing issue Signed-off-by: vedganes <[email protected]>
8730bd8
to
d73e068
Compare
* [cbf] Added initial CBF support (#2) * Added CBF NHG support to NhgOrch * Added NhgMapOrch to handle DSCP_TO_FC and EXP_TO_FC tables * Added UT for the new NhgOrch function and NhgMapOrch Support sonic-net/SONiC#796 Co-authored-by: Alexandru Banu <[email protected]>
Currently, ASAN sometimes reports the BufferOrch::m_buffer_type_maps and QosOrch::m_qos_maps as leaked. However, their lifetime is the lifetime of a process so they are not really 'leaked'. This also adds a simple way to add more suppressions later if required. Example of ASAN report: Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7f96aa952d30 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xead30) #1 0x55ca1da9f789 in __static_initialization_and_destruction_0 /__w/2/s/orchagent/bufferorch.cpp:39 #2 0x55ca1daa02af in _GLOBAL__sub_I_bufferorch.cpp /__w/2/s/orchagent/bufferorch.cpp:1321 #3 0x55ca1e2a9cd4 (/usr/bin/orchagent+0xe89cd4) Direct leak of 48 byte(s) in 1 object(s) allocated from: #0 0x7f96aa952d30 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xead30) #1 0x55ca1da6d2da in __static_initialization_and_destruction_0 /__w/2/s/orchagent/qosorch.cpp:80 #2 0x55ca1da6ecf2 in _GLOBAL__sub_I_qosorch.cpp /__w/2/s/orchagent/qosorch.cpp:2000 #3 0x55ca1e2a9cd4 (/usr/bin/orchagent+0xe89cd4) - What I did Added an lsan suppression config with static variable leak suppression - Why I did it To suppress ASAN false positives - How I verified it Run a test that produces the static variable leaks report and checked that report has these leaks suppressed. Signed-off-by: Yakiv Huryk <[email protected]>
**What I did** Fix the Mem Leak by moving the raw pointers in type_maps to use smart pointers **Why I did it** ``` Indirect leak of 83776 byte(s) in 476 object(s) allocated from: #0 0x7f0a2a414647 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99 #1 0x5555590cc923 in __gnu_cxx::new_allocator, std::allocator > const, referenced_object> > >::allocate(unsigned long, void const*) /usr/include/c++/10/ext/new_allocator.h:115 #2 0x5555590cc923 in std::allocator_traits, std::allocator > const, referenced_object> > > >::allocate(std::allocator, std::allocator > const, referenced_object> > >&, unsigned long) /usr/include/c++/10/bits/alloc_traits.h:460 #3 0x5555590cc923 in std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, referenced_object>, std::_Select1st, std::allocator > const, referenced_object> >, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::_M_get_node() /usr/include/c++/10/bits/stl_tree.h:584 #4 0x5555590cc923 in std::_Rb_tree_node, std::allocator > const, referenced_object> >* std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, referenced_object>, std::_Select1st, std::allocator > const, referenced_object> >, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::_M_create_node, std::allocator > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple, std::allocator > const&>&&, std::tuple<>&&) /usr/include/c++/10/bits/stl_tree.h:634 sonic-net#5 0x5555590cc923 in std::_Rb_tree_iterator, std::allocator > const, referenced_object> > std::_Rb_tree, std::allocator >, std::pair, std::allocator > const, referenced_object>, std::_Select1st, std::allocator > const, referenced_object> >, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::_M_emplace_hint_unique, std::allocator > const&>, std::tuple<> >(std::_Rb_tree_const_iterator, std::allocator > const, referenced_object> >, std::piecewise_construct_t const&, std::tuple, std::allocator > const&>&&, std::tuple<>&&) /usr/include/c++/10/bits/stl_tree.h:2461 sonic-net#6 0x5555590e8757 in std::map, std::allocator >, referenced_object, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >::operator[](std::__cxx11::basic_string, std::allocator > const&) /usr/include/c++/10/bits/stl_map.h:501 sonic-net#7 0x5555590d48b0 in Orch::setObjectReference(std::map, std::allocator >, std::map, std::allocator >, referenced_object, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >*, std::less, std::allocator > >, std::allocator, std::allocator > const, std::map, std::allocator >, referenced_object, std::less, std::allocator > >, std::allocator, std::allocator > const, referenced_object> > >*> > >&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&, std::__cxx11::basic_string, std::allocator > const&) orchagent/orch.cpp:450 sonic-net#8 0x5555594ff66b in QosOrch::handleQueueTable(Consumer&, std::tuple, std::allocator >, std::__cxx11::basic_string, std::allocator >, std::vector, std::allocator >, std::__cxx11::basic_string, std::allocator > >, std::allocator, std::allocator >, std::__cxx11::basic_string, std::allocator > > > > >&) orchagent/qosorch.cpp:1763 sonic-net#9 0x5555594edbd6 in QosOrch::doTask(Consumer&) orchagent/qosorch.cpp:2179 sonic-net#10 0x5555590c8743 in Consumer::drain() orchagent/orch.cpp:241 sonic-net#11 0x5555590c8743 in Consumer::drain() orchagent/orch.cpp:238 sonic-net#12 0x5555590c8743 in Consumer::execute() orchagent/orch.cpp:235 sonic-net#13 0x555559090dad in OrchDaemon::start() orchagent/orchdaemon.cpp:755 sonic-net#14 0x555558e9be25 in main orchagent/main.cpp:766 sonic-net#15 0x7f0a299b6d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09) ```
What I did
Changes support inband interface configuration support..
Why I did it
The VOQ chassis needs inband interface in the kernel for cpu to cpu communication across different asic instance and remote neighbor programming in the kernel. This PR adds support for configuring inband interface so that kernel interface can be created via sonic configuration.
How I verified it
swss vs test to verify the remote neigh programming.
Details if related
Reference: VOQ HLD: https://github.com/Azure/SONiC/blob/master/doc/voq/voq_hld.md
The changes in the PR are on top of the changes in sonic-net#1431.