Skip to content
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

[dash-p4] Add reverse routing table and reverse tunnel support. #603

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions dash-pipeline/SAI/specs/dash_eni.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,19 @@ sai_apis:
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_ATTR_OUTBOUND_REVERSE_ROUTING_GROUP_ID
description: Action parameter outbound reverse routing group id
type: sai_object_id_t
attr_value_field: u16
default: SAI_NULL_OBJECT_ID
isresourcetype: false
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_OUTBOUND_REVERSE_ROUTING_GROUP
allow_null: true
valid_only: null
is_vlan: false
deprecated: false
stats:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_STAT_RX_BYTES
Expand Down Expand Up @@ -1613,6 +1626,45 @@ sai_apis:
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_STAT_REVERSE_TUNNEL_MISS_DROP_PACKETS
description: DASH ENI REVERSE_TUNNEL_MISS_DROP_PACKETS stat count
type: sai_uint64_t
attr_value_field: u64
default: null
isresourcetype: false
flags: READ_ONLY
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_STAT_REVERSE_TUNNEL_MEMBER_MISS_DROP_PACKETS
description: DASH ENI REVERSE_TUNNEL_MEMBER_MISS_DROP_PACKETS stat count
type: sai_uint64_t
attr_value_field: u64
default: null
isresourcetype: false
flags: READ_ONLY
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_STAT_REVERSE_TUNNEL_NEXT_HOP_MISS_DROP_PACKETS
description: DASH ENI REVERSE_TUNNEL_NEXT_HOP_MISS_DROP_PACKETS stat count
type: sai_uint64_t
attr_value_field: u64
default: null
isresourcetype: false
flags: READ_ONLY
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
p4_meta: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4Meta
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
Expand Down
149 changes: 149 additions & 0 deletions dash-pipeline/SAI/specs/dash_outbound_reverse_routing.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
!!python/object:utils.sai_spec.sai_api_group.SaiApiGroup
name: dash_outbound_reverse_routing
description: DASH outbound reverse routing
api_type: overlay
sai_apis:
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: outbound_reverse_routing_group
description: outbound reverse routing group
is_object: true
enums: []
structs: []
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_REVERSE_ROUTING_GROUP_ATTR_DISABLED
description: Action parameter disabled
type: bool
attr_value_field: booldata
default: 'false'
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
stats: []
p4_meta: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4Meta
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 39120190
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
id: 29859952
attr_param_id: {}
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: outbound_reverse_routing_entry
description: outbound reverse routing entry
is_object: false
enums:
- !!python/object:utils.sai_spec.sai_enum.SaiEnum
name: sai_outbound_reverse_routing_entry_action_t
description: 'Attribute data for #SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_ACTION'
members:
- !!python/object:utils.sai_spec.sai_enum_member.SaiEnumMember
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ACTION_SET_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR
description: ''
value: '0'
structs:
- !!python/object:utils.sai_spec.sai_struct.SaiStruct
name: sai_outbound_reverse_routing_entry_t
description: Entry for outbound_reverse_routing_entry
members:
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: switch_id
description: Switch ID
type: sai_object_id_t
objects: SAI_OBJECT_TYPE_SWITCH
valid_only: null
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: outbound_reverse_routing_group_id
description: Exact matched key outbound_reverse_routing_group_id
type: sai_object_id_t
objects: SAI_OBJECT_TYPE_OUTBOUND_REVERSE_ROUTING_GROUP
valid_only: null
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: source
description: LPM matched key source
type: sai_ip_prefix_t
objects: null
valid_only: null
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_ACTION
description: Action
type: sai_outbound_reverse_routing_entry_action_t
attr_value_field: null
default: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ACTION_SET_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_DASH_REVERSE_TUNNEL_ID
description: Action parameter DASH reverse tunnel id
type: sai_object_id_t
attr_value_field: u16
default: SAI_NULL_OBJECT_ID
isresourcetype: false
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_DASH_REVERSE_TUNNEL
allow_null: true
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_ROUTING_ACTIONS_DISABLED_IN_FLOW_RESIMULATION
description: Action parameter routing actions disabled in flow re-simulation
type: sai_uint32_t
attr_value_field: u32
default: '0'
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_COUNTER_ID
description: Attach a counter. When it is empty, then packet hits won't be counted.
type: sai_object_id_t
attr_value_field: null
default: SAI_NULL_OBJECT_ID
isresourcetype: false
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_COUNTER
allow_null: true
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_IP_ADDR_FAMILY
description: IP address family for resource accounting
type: sai_ip_addr_family_t
attr_value_field: null
default: null
isresourcetype: true
flags: READ_ONLY
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
stats: []
p4_meta: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4Meta
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 46283501
actions:
SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ACTION_SET_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ACTION_SET_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR
id: 24053233
attr_param_id:
SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_DASH_REVERSE_TUNNEL_ID: 1
SAI_OUTBOUND_REVERSE_ROUTING_ENTRY_ATTR_ROUTING_ACTIONS_DISABLED_IN_FLOW_RESIMULATION: 2
134 changes: 134 additions & 0 deletions dash-pipeline/SAI/specs/dash_reverse_tunnel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
!!python/object:utils.sai_spec.sai_api_group.SaiApiGroup
name: dash_reverse_tunnel
description: DASH reverse tunnel
api_type: overlay
sai_apis:
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: dash_reverse_tunnel
description: DASH reverse tunnel
is_object: true
enums: []
structs: []
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_DASH_REVERSE_TUNNEL_ATTR_DASH_ENCAPSULATION
description: Action parameter DASH encapsulation
type: sai_dash_encapsulation_t
attr_value_field: s32
default: SAI_DASH_ENCAPSULATION_VXLAN
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_DASH_REVERSE_TUNNEL_ATTR_TUNNEL_KEY
description: Action parameter tunnel key
type: sai_uint32_t
attr_value_field: u32
default: '0'
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
stats: []
p4_meta: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4Meta
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 49122034
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
id: 17501974
attr_param_id: {}
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: dash_reverse_tunnel_member
description: DASH reverse tunnel member
is_object: true
enums: []
structs: []
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_DASH_REVERSE_TUNNEL_MEMBER_ATTR_DASH_REVERSE_TUNNEL_ID
description: Exact matched key dash_reverse_tunnel_id
type: sai_object_id_t
attr_value_field: u16
default: null
isresourcetype: false
flags: MANDATORY_ON_CREATE | CREATE_ONLY
object_name: SAI_OBJECT_TYPE_DASH_REVERSE_TUNNEL
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_DASH_REVERSE_TUNNEL_MEMBER_ATTR_DASH_REVERSE_TUNNEL_NEXT_HOP_ID
description: Action parameter DASH reverse tunnel next hop id
type: sai_object_id_t
attr_value_field: u16
default: SAI_NULL_OBJECT_ID
isresourcetype: false
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_DASH_REVERSE_TUNNEL_NEXT_HOP
allow_null: true
valid_only: null
is_vlan: false
deprecated: false
stats: []
p4_meta: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4Meta
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 37338287
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
id: 29566243
attr_param_id: {}
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: dash_reverse_tunnel_next_hop
description: DASH reverse tunnel next hop
is_object: true
enums: []
structs: []
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_DASH_REVERSE_TUNNEL_NEXT_HOP_ATTR_DIP
description: Action parameter dip
type: sai_ip_address_t
attr_value_field: ipaddr
default: 0.0.0.0
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_DASH_REVERSE_TUNNEL_NEXT_HOP_ATTR_SIP
description: Action parameter sip
type: sai_ip_address_t
attr_value_field: ipaddr
default: 0.0.0.0
isresourcetype: false
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
is_vlan: false
deprecated: false
stats: []
p4_meta: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4Meta
tables:
- !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaTable
id: 37313152
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
id: 25630550
attr_param_id: {}
Loading
Loading