Optimized Forwarding Header#2297
Conversation
Signed-off-by: JaiOCP <jai.kumar@broadcom.com>
| SAI_NATIVE_HASH_FIELD_RDMA_BTH_DEST_QP = 0x00000023, | ||
|
|
||
| /** Native hash field RDMA packet BTH destination queue pair */ | ||
| SAI_NATIVE_HASH_FIELD_OFH_FLOW_LABEL = 0x00000024, |
There was a problem hiding this comment.
Fix the comments cut and paste error.
| * @flags CREATE_ONLY | ||
| * @default false | ||
| */ | ||
| SAI_ACL_TABLE_ATTR_FIELD_ACL_OFH_TYPE = SAI_ACL_TABLE_ATTR_FIELD_START + 0x167, |
There was a problem hiding this comment.
Please add match for version field
|
It will be good to draw an abstract SAI pipeline to illustrate the forwarding model of OFH in the documentation. |
| * @default false | ||
| */ | ||
| SAI_ACL_TABLE_ATTR_FIELD_OFH_COS = SAI_ACL_TABLE_ATTR_FIELD_START + 0x168, | ||
|
|
There was a problem hiding this comment.
Please add TTL decrement for action as well as match on TTL
| * @brief End of Rule Actions | ||
| */ | ||
| SAI_ACL_ENTRY_ATTR_ACTION_END = SAI_ACL_ENTRY_ATTR_ACTION_TAM_OBJECT, | ||
| SAI_ACL_ENTRY_ATTR_ACTION_END = SAI_ACL_ENTRY_ATTR_ACTION_SET_OFH_COS, |
There was a problem hiding this comment.
SAI_ACL_ACTION_TYPE_SET_ECN = 0x00000017,
Set ECN also supported for normal IP packet.
| /** | ||
| * @brief OFH header max size | ||
| * | ||
| * @type sai_int8_t |
|
|
||
| SAI_OFH_ADDR_FAMILY_AFH, | ||
|
|
||
| SAI_OFH_ADDR_FAMILY_UFH, |
|
|
||
| /** @validonly meta->attrvaluetype == SAI_ATTR_VALUE_TYPE_UINT64_RANGE_LIST */ | ||
| sai_u64_range_list_t u64rangelist; | ||
|
|
There was a problem hiding this comment.
Should the corresponding sai_ofh_addr_and_mask_t to SAI_ATTR_VALUE_TYPE_OFH_ADDR_AND_MASK type be added here?
| /** | ||
| * @brief Set OFH attribute value(s). | ||
| * | ||
| * @param[in] ofh_id TAM id |
| * @param[out] object_statuses List of status for every object. Caller needs to | ||
| * allocate the buffer | ||
| * | ||
| * @return #SAI_STATUS_SUCCESS on success when all objects are removed or |
There was a problem hiding this comment.
Appear to be cut and paste error from route remove entry.
sairoute.h appear to have same cut and paste error.
| * @param[out] object_statuses List of status for every object. Caller needs to | ||
| * allocate the buffer | ||
| * | ||
| * @return #SAI_STATUS_SUCCESS on success when all objects are removed or |
There was a problem hiding this comment.
Appear to be cut and paste error from route remove entry.
sairoute.h appear to have same cut and paste error.
| * | ||
| * @type sai_uint8_t | ||
| * @flags CREATE_AND_SET | ||
| * @default 6 |
There was a problem hiding this comment.
while other *_WIDTH fields are default to '0', This seems to be special.
|
Hi @JaiOCP , thanks for the OFH contribution. It aligns well with UEC Scale-Up goals. A few points before merge: LGTM overall. |
| /** OFH VLAN drop */ | ||
| SAI_IN_DROP_REASON_OFH_VLAN_DROP, | ||
|
|
||
| /** OFH VLAN to virtual router id drop */ |
There was a problem hiding this comment.
- Please explain this drop reason either as comments in the header file or in the markdown file to be created.
- Which of the below drops are accounted under this drop reason?
- SAI_ROUTER_INTERFACE_ATTR_ADMIN_OFH_STATE is false
- SAI_VIRTUAL_ROUTER_ATTR_ADMIN_OFH_STATE is false
| SAI_IN_DROP_REASON_OFH_DISCARD, | ||
|
|
||
| /** OFH VLAN drop */ | ||
| SAI_IN_DROP_REASON_OFH_VLAN_DROP, |
There was a problem hiding this comment.
If I understand correctly, SAI_IN_DROP_REASON_OFH_VLAN_DROP is meant to account the drops when RIF of type SAI_ROUTER_INTERFACE_TYPE_VLAN is not created for the given ingress port + packet.VID. Ideally, this would be accounted under SAI_IN_DROP_REASON_INGRESS_VLAN_FILTER. We do not have IPv4/IPv6 specific VLAN drops. I am trying to understand as to why we need OFH specific VLAN drops.
| * @type sai_ofh_sub_type_t | ||
| * @flags CREATE_ONLY | ||
| * @default SAI_OFH_SUB_TYPE_NONE | ||
| */ |
There was a problem hiding this comment.
I presume this is to identify UFH1/2, AFH1/2 and is not valid for ESUN. Please add appropriate @validonly
| SAI_OFH_ATTR_SUB_TYPE, | ||
|
|
||
| /** | ||
| * @brief OFH Version number |
There was a problem hiding this comment.
@brief Version/Revision number
| * @type sai_ofh_ver_t | ||
| * @flags CREATE_AND_SET | ||
| * @default SAI_OFH_VER_1 | ||
| * @validonly SAI_OFH_ATTR_TYPE == SAI_OFH_TYPE_AFH or SAI_OFH_ATTR_TYPE == SAI_OFH_TYPE_ESUN |
There was a problem hiding this comment.
Version is valid for UHF also. If the idea is to add UHF as a separate PR, then we could remove SAI_OFH_TYPE_UFH from sai_ofh_type_t.
| SAI_QOS_MAP_TYPE_QUEUE_TO_VC = 0x00000011, | ||
|
|
||
| /** QOS Map to set OFH COS to Traffic class */ | ||
| SAI_QOS_MAP_TYPE_OFH_COS_TO_TC = 0x00000012, |
There was a problem hiding this comment.
Need to extend sai_qos_map_params_t to include a new field: sai_uint8_t ofh_cos.
Note that increases the size of the struct and needs handling in sairedis serialization/deserialization.
New PR is opened.
Old one where most of the review comments are there is closed
#2285