Skip to content

Commit

Permalink
Fix valid only tag.
Browse files Browse the repository at this point in the history
  • Loading branch information
r12f committed Jun 2, 2024
1 parent 8c96811 commit 7b9ace2
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 32 deletions.
8 changes: 5 additions & 3 deletions dash-pipeline/SAI/specs/dash_inbound_routing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_INBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_INBOUND_ROUTING_ENTRY_ACTION_TUNNEL_DECAP
or SAI_INBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_INBOUND_ROUTING_ENTRY_ACTION_TUNNEL_DECAP_PA_VALIDATE
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -106,7 +107,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_INBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_INBOUND_ROUTING_ENTRY_ACTION_TUNNEL_DECAP
or SAI_INBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_INBOUND_ROUTING_ENTRY_ACTION_TUNNEL_DECAP_PA_VALIDATE
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -119,7 +121,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_VNET
allow_null: true
valid_only: null
valid_only: SAI_INBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_INBOUND_ROUTING_ENTRY_ACTION_TUNNEL_DECAP_PA_VALIDATE
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand Down
27 changes: 16 additions & 11 deletions dash-pipeline/SAI/specs/dash_outbound_ca_to_pa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
or SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -80,7 +81,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -93,7 +94,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -106,7 +107,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
or SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -119,7 +121,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
or SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -132,7 +135,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
or SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -145,7 +149,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -158,7 +162,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -171,7 +175,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -184,7 +188,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand Down Expand Up @@ -223,7 +227,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_DASH_TUNNEL
allow_null: true
valid_only: null
valid_only: SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_TUNNEL_MAPPING
or SAI_OUTBOUND_CA_TO_PA_ENTRY_ATTR_ACTION == SAI_OUTBOUND_CA_TO_PA_ENTRY_ACTION_SET_PRIVATE_LINK_MAPPING
is_vlan: false
deprecated: false
stats: []
Expand Down
41 changes: 27 additions & 14 deletions dash-pipeline/SAI/specs/dash_outbound_routing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ sai_apis:
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_VNET
allow_null: true
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET_DIRECT
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -92,7 +93,10 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -105,7 +109,10 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -118,7 +125,10 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -131,7 +141,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET_DIRECT
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -144,7 +154,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -157,7 +167,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -170,7 +180,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -183,7 +193,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -196,7 +206,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -209,7 +219,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -222,7 +232,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand All @@ -235,7 +245,7 @@ sai_apis:
flags: CREATE_AND_SET
object_name: null
allow_null: false
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand Down Expand Up @@ -274,7 +284,10 @@ sai_apis:
flags: CREATE_AND_SET
object_name: SAI_OBJECT_TYPE_DASH_TUNNEL
allow_null: true
valid_only: null
valid_only: SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_VNET_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_DIRECT
or SAI_OUTBOUND_ROUTING_ENTRY_ATTR_ACTION == SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_SERVICE_TUNNEL
is_vlan: false
deprecated: false
stats: []
Expand Down
3 changes: 3 additions & 0 deletions dash-pipeline/SAI/templates/headers/sai_attribute.j2
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
{% if attr.default != None %}
* @default {{ attr.default }}
{% endif %}
{% if attr.valid_only != None %}
* @validonly {{ attr.valid_only }}
{% endif %}
{% if attr.isresourcetype %}
* @isresourcetype true
{% endif %}
Expand Down
2 changes: 1 addition & 1 deletion dash-pipeline/SAI/utils/dash_p4/dash_p4_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ def create_sai_attributes(self, sai_api: SaiApi) -> None:
# Add all the action parameters into the attributes.
for attr in self.sai_attributes:
if attr.skipattr != "true":
sai_api.attributes.extend(attr.to_sai_attribute(self.name))
sai_api.attributes.extend(attr.to_sai_attribute(self.name, add_action_valid_only_check=len(self.actions) > 1))

# If the table has an counter attached, we need to create a counter attribute for it.
# The counter attribute only counts that packets that hits any entry, but not the packet that misses all entries.
Expand Down
16 changes: 13 additions & 3 deletions dash-pipeline/SAI/utils/dash_p4/dash_p4_table_attribute.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ def to_sai_struct_entry(self, table_name: str) -> List[SaiStructEntry]:

return entries

def to_sai_attribute(self, table_name: str, create_only: bool = False) -> List[SaiAttribute]:
def to_sai_attribute(self, table_name: str, create_only: bool = False, add_action_valid_only_check: bool = False) -> List[SaiAttribute]:
name = self.get_sai_name(table_name)
description = self.get_sai_description(table_name)

Expand All @@ -141,6 +141,16 @@ def to_sai_attribute(self, table_name: str, create_only: bool = False) -> List[S
sai_flags = "CREATE_AND_SET"
default_value = self.default

valid_only_checks = []
if add_action_valid_only_check:
for param_action in self.param_actions:
valid_only_checks.append(f"SAI_{table_name.upper()}_ATTR_ACTION == SAI_{table_name.upper()}_ACTION_{param_action.upper()}")

if self.validonly:
valid_only_checks.append(self.validonly)

valid_only = " or ".join(valid_only_checks) if len(valid_only_checks) > 0 else None

attributes = [
SaiAttribute(
name = name,
Expand All @@ -152,7 +162,7 @@ def to_sai_attribute(self, table_name: str, create_only: bool = False) -> List[S
flags = sai_flags,
object_name = object_name,
allow_null = allow_null,
valid_only = self.validonly,
valid_only = valid_only,
is_vlan = is_vlan,
)
]
Expand All @@ -168,7 +178,7 @@ def to_sai_attribute(self, table_name: str, create_only: bool = False) -> List[S
flags = sai_flags,
object_name = object_name,
allow_null = allow_null,
valid_only = self.validonly,
valid_only = valid_only,
))

return attributes
Expand Down

0 comments on commit 7b9ace2

Please sign in to comment.