Skip to content

Commit

Permalink
[sai-gen] Update SAI specs to have more p4 meta info (#647)
Browse files Browse the repository at this point in the history
This PR updates p4 meta of sai api to include table keys and action
params in detail.
It will be the single truth to generate sai api implementation later.
  • Loading branch information
jimmyzhai authored Dec 6, 2024
1 parent 69d76b5 commit 3013f33
Show file tree
Hide file tree
Showing 18 changed files with 1,873 additions and 188 deletions.
370 changes: 343 additions & 27 deletions dash-pipeline/SAI/specs/dash_acl.yaml

Large diffs are not rendered by default.

22 changes: 19 additions & 3 deletions dash-pipeline/SAI/specs/dash_appliance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,24 @@ sai_apis:
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 45177948
stage: null
keys:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaKey
name: appliance_id
id: 1
match_type: exact
field: u16
bitwidth: 8
ip_is_v6_field_id: 0
is_object_key: true
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
SAI_DASH_APPLIANCE_ACTION_SET_APPLIANCE: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: SAI_DASH_APPLIANCE_ACTION_SET_APPLIANCE
id: 17143042
attr_param_id: {}
attr_params:
SAI_DASH_APPLIANCE_ATTR_LOCAL_REGION_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 1
field: u8
bitwidth: 8
ip_is_v6_field_id: 0
skipattr: null
19 changes: 17 additions & 2 deletions dash-pipeline/SAI/specs/dash_direction_lookup.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,24 @@ sai_apis:
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 49875338
stage: null
keys:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaKey
name: VNI
id: 1
match_type: exact
field: u32
bitwidth: 24
ip_is_v6_field_id: 0
is_object_key: false
actions:
SAI_DIRECTION_LOOKUP_ENTRY_ACTION_SET_OUTBOUND_DIRECTION: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: SAI_DIRECTION_LOOKUP_ENTRY_ACTION_SET_OUTBOUND_DIRECTION
id: 32588257
attr_param_id:
SAI_DIRECTION_LOOKUP_ENTRY_ATTR_DASH_ENI_MAC_OVERRIDE_TYPE: 1
attr_params:
SAI_DIRECTION_LOOKUP_ENTRY_ATTR_DASH_ENI_MAC_OVERRIDE_TYPE: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 1
field: s32
bitwidth: 8
ip_is_v6_field_id: 0
skipattr: null
287 changes: 282 additions & 5 deletions dash-pipeline/SAI/specs/dash_eni.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,27 @@ sai_apis:
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 39883185
stage: null
keys:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaKey
name: address
id: 1
match_type: exact
field: mac
bitwidth: 48
ip_is_v6_field_id: 0
is_object_key: false
actions:
SAI_ENI_ETHER_ADDRESS_MAP_ENTRY_ACTION_SET_ENI: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: SAI_ENI_ETHER_ADDRESS_MAP_ENTRY_ACTION_SET_ENI
id: 19019152
attr_param_id:
SAI_ENI_ETHER_ADDRESS_MAP_ENTRY_ATTR_ENI_ID: 1
attr_params:
SAI_ENI_ETHER_ADDRESS_MAP_ENTRY_ATTR_ENI_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 1
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: eni
description: ENI
Expand Down Expand Up @@ -1643,8 +1658,270 @@ sai_apis:
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 38483381
stage: null
keys:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaKey
name: eni_id
id: 1
match_type: exact
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
is_object_key: true
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
SAI_ENI_ACTION_SET_ENI_ATTRS: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: SAI_ENI_ACTION_SET_ENI_ATTRS
id: 30359009
attr_param_id: {}
attr_params:
SAI_ENI_ATTR_CPS: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 1
field: u32
bitwidth: 32
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_PPS: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 2
field: u32
bitwidth: 32
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_FLOWS: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 3
field: u32
bitwidth: 32
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_ADMIN_STATE: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 4
field: booldata
bitwidth: 1
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_HA_SCOPE_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 5
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_VM_UNDERLAY_DIP: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 6
field: ipaddr
bitwidth: 32
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_VM_VNI: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 7
field: u32
bitwidth: 24
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_VNET_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 8
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_PL_SIP: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 9
field: ipaddr
bitwidth: 128
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_PL_SIP_MASK: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 10
field: ipaddr
bitwidth: 128
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_PL_UNDERLAY_SIP: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 11
field: ipaddr
bitwidth: 32
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_V4_METER_POLICY_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 12
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_V6_METER_POLICY_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 13
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_DASH_TUNNEL_DSCP_MODE: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 14
field: s32
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_DSCP: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 15
field: u8
bitwidth: 6
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V4_STAGE1_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 16
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V4_STAGE2_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 17
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V4_STAGE3_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 18
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V4_STAGE4_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 19
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V4_STAGE5_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 20
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V6_STAGE1_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 21
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V6_STAGE2_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 22
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V6_STAGE3_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 23
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V6_STAGE4_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 24
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_INBOUND_V6_STAGE5_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 25
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V4_STAGE1_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 26
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V4_STAGE2_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 27
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V4_STAGE3_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 28
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V4_STAGE4_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 29
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V4_STAGE5_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 30
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V6_STAGE1_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 31
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V6_STAGE2_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 32
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V6_STAGE3_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 33
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V6_STAGE4_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 34
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_V6_STAGE5_DASH_ACL_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 35
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_DISABLE_FAST_PATH_ICMP_FLOW_REDIRECTION: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 36
field: booldata
bitwidth: 1
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_FULL_FLOW_RESIMULATION_REQUESTED: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 37
field: booldata
bitwidth: 1
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_MAX_RESIMULATED_FLOW_PER_SECOND: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 38
field: u64
bitwidth: 64
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_OUTBOUND_ROUTING_GROUP_ID: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 39
field: u16
bitwidth: 16
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_ENABLE_REVERSE_TUNNEL_LEARNING: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 40
field: booldata
bitwidth: 1
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_REVERSE_TUNNEL_SIP: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 41
field: ipaddr
bitwidth: 32
ip_is_v6_field_id: 0
skipattr: null
SAI_ENI_ATTR_IS_HA_FLOW_OWNER: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaActionParam
id: 42
field: booldata
bitwidth: 1
ip_is_v6_field_id: 0
skipattr: null
Loading

0 comments on commit 3013f33

Please sign in to comment.