You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is probably a SAI question but I am asking it here since I am seeing a behavior in syncd that is leaving me baffled.
The switch ID terminology is confusing me, I am hoping to get these questions answered and get a clarification.
Consider an example VOQ switch with two linecards : LC0 and LC1
Lets start from create_switch SAI API. The output parameter switch_id is the object ID of the "switch" formed by the SAI layer and returned back to the caller. Lets call it "switch_object_id" to avoid confusion.
/**
* @brief Create switch
*
* SDK initialization/connect to SDK. After the call the capability attributes should be
* ready for retrieval via sai_get_switch_attribute(). Same Switch Object id should be
* given for create/connect for each NPU.
*
* @param[out] switch_id The Switch Object ID
* @param[in] attr_count Number of attributes
* @param[in] attr_list Array of attributes
*
* @return #SAI_STATUS_SUCCESS on success, failure status code on error
*/
typedef sai_status_t (*sai_create_switch_fn)(
_Out_ sai_object_id_t *switch_id,
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list);
Now, in a VOQ system should the SAI layer return the same "switch_object_id" for all the nodes in the chassis? In our VOQ switch, should SAI on LC0 and LC1 return the same switch_object_id or different "switch_object_id"s?
There is a "switch_id" in the DEVICE_METADATA of the SONiC config_db.json. Lets call it "switch_voq_id". Ex:
Is there any co-relation between switch_voq_id and switch_object_id?
If yes, when create_switch is called, should the SAI layer embed the switch_voq_id into the switch_object_id?
Say, SAI generates a switch_object_id following some internal logic, will all the subsequent invocation of SAI APIs from syncd use this generated switch_object_id for all the SAI objects (once that needs switch_object_id)?
The text was updated successfully, but these errors were encountered:
Hello,
This is probably a SAI question but I am asking it here since I am seeing a behavior in syncd that is leaving me baffled.
The switch ID terminology is confusing me, I am hoping to get these questions answered and get a clarification.
Consider an example VOQ switch with two linecards : LC0 and LC1
Lets start from create_switch SAI API. The output parameter switch_id is the object ID of the "switch" formed by the SAI layer and returned back to the caller. Lets call it "switch_object_id" to avoid confusion.
Now, in a VOQ system should the SAI layer return the same "switch_object_id" for all the nodes in the chassis? In our VOQ switch, should SAI on LC0 and LC1 return the same switch_object_id or different "switch_object_id"s?
There is a "switch_id" in the DEVICE_METADATA of the SONiC config_db.json. Lets call it "switch_voq_id". Ex:
This I presume is local to the node, meaning in our example LC0 and LC1 will have different "switch_voq_id"s. If not, please correct me.
This "switch_voq_id" is also what is used in defining system port configs in SONiC?
Questions:
The text was updated successfully, but these errors were encountered: