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

Rename routing group and attributes #587

Merged
merged 3 commits into from
Jun 26, 2024
Merged
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
14 changes: 7 additions & 7 deletions dash-pipeline/SAI/specs/dash_eni.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -573,14 +573,14 @@ sai_apis:
deprecated: false
is_vlan: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_ATTR_ROUTING_GROUP_ID
description: Action parameter routing group id
name: SAI_ENI_ATTR_OUTBOUND_ROUTING_GROUP_ID
description: Action parameter outbound 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_ROUTING_GROUP
object_name: SAI_OBJECT_TYPE_OUTBOUND_ROUTING_GROUP
allow_null: true
valid_only: null
is_vlan: false
Expand Down Expand Up @@ -1585,11 +1585,11 @@ sai_apis:
object_name: null
allow_null: false
valid_only: null
deprecated: false
is_vlan: false
deprecated: false
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_ENI_STAT_OUTBOUND_ROUTING_GROUP_ADMIN_DOWN_DROP_PACKETS
description: DASH ENI OUTBOUND_ROUTING_GROUP_ADMIN_DOWN_DROP_PACKETS stat count
name: SAI_ENI_STAT_OUTBOUND_ROUTING_GROUP_DISABLED_DROP_PACKETS
description: DASH ENI OUTBOUND_ROUTING_GROUP_DISABLED_DROP_PACKETS stat count
type: sai_uint64_t
attr_value_field: u64
default: null
Expand All @@ -1598,8 +1598,8 @@ sai_apis:
object_name: null
allow_null: false
valid_only: null
deprecated: false
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
42 changes: 33 additions & 9 deletions dash-pipeline/SAI/specs/dash_outbound_routing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,17 @@ sai_apis:
type: sai_object_id_t
objects: SAI_OBJECT_TYPE_SWITCH
valid_only: null
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: eni_id
description: Exact matched key eni_id
type: sai_object_id_t
objects: SAI_OBJECT_TYPE_ENI
valid_only: null
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: destination
description: LPM matched key destination
type: sai_ip_prefix_t
objects: null
valid_only: null
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: routing_group_id
description: Exact matched key routing_group_id
name: outbound_routing_group_id
description: Exact matched key outbound_routing_group_id
type: sai_object_id_t
objects: SAI_OBJECT_TYPE_ROUTING_GROUP
objects: SAI_OBJECT_TYPE_OUTBOUND_ROUTING_GROUP
valid_only: null
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
Expand Down Expand Up @@ -349,3 +343,33 @@ sai_apis:
name: SAI_OUTBOUND_ROUTING_ENTRY_ACTION_DROP
id: 18759588
attr_param_id: {}
- !!python/object:utils.sai_spec.sai_api.SaiApi
name: outbound_routing_group
description: outbound routing group
is_object: true
enums: []
structs: []
attributes:
- !!python/object:utils.sai_spec.sai_attribute.SaiAttribute
name: SAI_OUTBOUND_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: 34522254
actions:
default: !!python/object:utils.sai_spec.sai_api_p4_meta.SaiApiP4MetaAction
name: default
id: 20489967
attr_param_id: {}
35 changes: 0 additions & 35 deletions dash-pipeline/SAI/specs/dash_routing_group.yaml

This file was deleted.

4 changes: 1 addition & 3 deletions dash-pipeline/SAI/specs/sai_spec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ api_types:
- SAI_API_ROUTE
- SAI_API_DASH_VIP
- SAI_API_DASH_TUNNEL
- SAI_API_DASH_ROUTING_GROUP
object_types:
- SAI_OBJECT_TYPE_DASH_ACL_GROUP
- SAI_OBJECT_TYPE_DASH_ACL_RULE
Expand All @@ -33,7 +32,7 @@ object_types:
- SAI_OBJECT_TYPE_ROUTE_ENTRY
- SAI_OBJECT_TYPE_VIP_ENTRY
- SAI_OBJECT_TYPE_DASH_TUNNEL
- SAI_OBJECT_TYPE_ROUTING_GROUP
- SAI_OBJECT_TYPE_OUTBOUND_ROUTING_GROUP
object_entries:
- !!python/object:utils.sai_spec.sai_struct_entry.SaiStructEntry
name: direction_lookup_entry
Expand Down Expand Up @@ -271,4 +270,3 @@ api_groups:
- !inc '/SAI/specs/route.yaml'
- !inc '/SAI/specs/dash_vip.yaml'
- !inc '/SAI/specs/dash_tunnel.yaml'
- !inc '/SAI/specs/dash_routing_group.yaml'
2 changes: 1 addition & 1 deletion dash-pipeline/bmv2/dash_counters.p4
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,6 @@ DEFINE_ENI_PACKET_COUNTER(outbound_routing_entry_miss_drop)
DEFINE_ENI_PACKET_COUNTER(outbound_ca_pa_entry_miss_drop)
DEFINE_ENI_PACKET_COUNTER(inbound_routing_entry_miss_drop)
DEFINE_ENI_PACKET_COUNTER(outbound_routing_group_miss_drop)
DEFINE_ENI_PACKET_COUNTER(outbound_routing_group_admin_down_drop)
DEFINE_ENI_PACKET_COUNTER(outbound_routing_group_disabled_drop)

#endif // __DASH_COUNTERS__
8 changes: 4 additions & 4 deletions dash-pipeline/bmv2/dash_metadata.p4
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ enum bit<16> dash_tunnel_dscp_mode_t {
PIPE_MODEL = 1
}

struct routing_group_data_t {
bit<16> routing_group_id;
bool routing_group_admin_state;
struct outbound_routing_group_data_t {
bit<16> outbound_routing_group_id;
bool disabled;
}

struct eni_data_t {
Expand All @@ -76,7 +76,7 @@ struct eni_data_t {
IPv4Address pl_underlay_sip;
bit<6> dscp;
dash_tunnel_dscp_mode_t dscp_mode;
routing_group_data_t routing_group_data;
outbound_routing_group_data_t outbound_routing_group_data;
}

struct meter_context_t {
Expand Down
20 changes: 10 additions & 10 deletions dash-pipeline/bmv2/dash_pipeline.p4
Original file line number Diff line number Diff line change
Expand Up @@ -112,17 +112,17 @@ control dash_ingress(
bit<1> disable_fast_path_icmp_flow_redirection,
bit<1> full_flow_resimulation_requested,
bit<64> max_resimulated_flow_per_second,
@SaiVal[type="sai_object_id_t"] bit<16> routing_group_id)
@SaiVal[type="sai_object_id_t"] bit<16> outbound_routing_group_id)
{
meta.eni_data.cps = cps;
meta.eni_data.pps = pps;
meta.eni_data.flows = flows;
meta.eni_data.admin_state = admin_state;
meta.eni_data.pl_sip = pl_sip;
meta.eni_data.pl_sip_mask = pl_sip_mask;
meta.eni_data.pl_underlay_sip = pl_underlay_sip;
meta.encap_data.underlay_dip = vm_underlay_dip;
meta.eni_data.routing_group_data.routing_group_id = routing_group_id;
meta.eni_data.cps = cps;
meta.eni_data.pps = pps;
meta.eni_data.flows = flows;
meta.eni_data.admin_state = admin_state;
meta.eni_data.pl_sip = pl_sip;
meta.eni_data.pl_sip_mask = pl_sip_mask;
meta.eni_data.pl_underlay_sip = pl_underlay_sip;
meta.encap_data.underlay_dip = vm_underlay_dip;
meta.eni_data.outbound_routing_group_data.outbound_routing_group_id = outbound_routing_group_id;
if (dash_tunnel_dscp_mode == dash_tunnel_dscp_mode_t.PIPE_MODEL) {
meta.eni_data.dscp = dscp;
}
Expand Down
20 changes: 10 additions & 10 deletions dash-pipeline/bmv2/stages/outbound_routing.p4
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@ control outbound_routing_stage(inout headers_t hdr,
inout metadata_t meta)
{

action set_routing_group_attr(bit<1> admin_state) {
meta.eni_data.routing_group_data.routing_group_admin_state = (bool)admin_state;
action set_outbound_routing_group_attr(bit<1> disabled) {
meta.eni_data.outbound_routing_group_data.disabled = (bool)disabled;
}

@SaiTable[name = "routing_group", api = "dash_routing_group", isobject="true"]
table routing_group {
@SaiTable[name = "outbound_routing_group", api = "dash_outbound_routing", order = 1, isobject="true"]
table outbound_routing_group {
key = {
meta.eni_data.routing_group_data.routing_group_id : exact @SaiVal[type="sai_object_id_t"];
meta.eni_data.outbound_routing_group_data.outbound_routing_group_id : exact @SaiVal[type="sai_object_id_t"];
}

actions = {
set_routing_group_attr;
set_outbound_routing_group_attr;
@defaultonly drop(meta);
}
}
Expand All @@ -28,7 +28,7 @@ control outbound_routing_stage(inout headers_t hdr,
@SaiTable[name = "outbound_routing", api = "dash_outbound_routing"]
table routing {
key = {
meta.eni_data.routing_group_data.routing_group_id : exact @SaiVal[type="sai_object_id_t"];
meta.eni_data.outbound_routing_group_data.outbound_routing_group_id : exact @SaiVal[type="sai_object_id_t"];
meta.is_overlay_ip_v6 : exact @SaiVal[name = "destination_is_v6"];
meta.dst_ip_addr : lpm @SaiVal[name = "destination"];
}
Expand All @@ -51,14 +51,14 @@ control outbound_routing_stage(inout headers_t hdr,
return;
}

if (!routing_group.apply().hit) {
if (!outbound_routing_group.apply().hit) {
UPDATE_ENI_COUNTER(outbound_routing_group_miss_drop);
drop(meta);
return;
}

if (!meta.eni_data.routing_group_data.routing_group_admin_state) {
UPDATE_ENI_COUNTER(outbound_routing_group_admin_down_drop);
if (meta.eni_data.outbound_routing_group_data.disabled) {
UPDATE_ENI_COUNTER(outbound_routing_group_disabled_drop);
drop(meta);
return;
}
Expand Down
2 changes: 1 addition & 1 deletion dash-pipeline/tests/libsai/vnet_out/vnet_out.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ int main(int argc, char **argv)
attr.value.booldata = false;
attrs.push_back(attr);

attr.id = SAI_ENI_ATTR_ROUTING_GROUP_ID;
attr.id = SAI_ENI_ATTR_OUTBOUND_ROUTING_GROUP_ID;
attr.value.oid = SAI_NULL_OBJECT_ID;
attrs.push_back(attr);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def test_sai_thrift_create_eni(saithrift_client):
disable_fast_path_icmp_flow_redirection = 0,
full_flow_resimulation_requested = False,
max_resimulated_flow_per_second = 0,
routing_group_id = 0)
outbound_routing_group_id = 0)
assert (eni != SAI_NULL_OBJECT_ID);

eam = sai_thrift_eni_ether_address_map_entry_t(switch_id=switch_id, address = eth_addr)
Expand Down
28 changes: 14 additions & 14 deletions test/test-cases/functional/ptf/sai_dash_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ def eni_create(self, **kwargs):
"outbound_v6_stage4_dash_acl_group_id": 0,
"outbound_v6_stage5_dash_acl_group_id": 0,
"disable_fast_path_icmp_flow_redirection": 0,
"routing_group_id": 0,
"outbound_routing_group_id": 0,
"full_flow_resimulation_requested": False,
"max_resimulated_flow_per_second": 0
}
Expand Down Expand Up @@ -240,20 +240,20 @@ def vnet_create(self, vni):
def vnet_remove(self, vnet_id):
sai_thrift_remove_vnet(self.client, vnet_id)

def routing_group_create(self, admin_state):
def outbound_routing_group_create(self, disabled):
"""
Create routing group
"""

routing_group_id = sai_thrift_create_routing_group(self.client, admin_state=admin_state)
outbound_routing_group_id = sai_thrift_create_outbound_routing_group(self.client, disabled=disabled)
self.assertEqual(self.status(), SAI_STATUS_SUCCESS)
self.assertNotEqual(routing_group_id, 0)
self.add_teardown_obj(self.routing_group_remove, routing_group_id)
self.assertNotEqual(outbound_routing_group_id, 0)
self.add_teardown_obj(self.outbound_routing_group_remove, outbound_routing_group_id)

return routing_group_id
return outbound_routing_group_id

def routing_group_remove(self, routing_group_id):
sai_thrift_remove_routing_group(self.client, routing_group_id)
def outbound_routing_group_remove(self, outbound_routing_group_id):
sai_thrift_remove_outbound_routing_group(self.client, outbound_routing_group_id)

def inbound_routing_decap_validate_create(self, eni_id, vni, sip, sip_mask, src_vnet_id):
"""
Expand Down Expand Up @@ -312,14 +312,14 @@ def pa_validation_create(self, sip, vnet_id):
def pa_validation_remove(self, pa_validation_entry):
sai_thrift_remove_pa_validation_entry(self.client, pa_validation_entry)

def outbound_routing_vnet_direct_create(self, routing_group_id, lpm, dst_vnet_id,
def outbound_routing_vnet_direct_create(self, outbound_routing_group_id, lpm, dst_vnet_id,
overlay_ip, counter_id=None, dash_tunnel_id=0):
"""
Create outband vnet direct routing entry
"""

outbound_routing_entry = sai_thrift_outbound_routing_entry_t(
switch_id=self.switch_id, routing_group_id=routing_group_id,
switch_id=self.switch_id, outbound_routing_group_id=outbound_routing_group_id,
destination=sai_ipprefix(lpm))
sai_thrift_create_outbound_routing_entry(self.client,
outbound_routing_entry, dst_vnet_id=dst_vnet_id,
Expand All @@ -331,13 +331,13 @@ def outbound_routing_vnet_direct_create(self, routing_group_id, lpm, dst_vnet_id

return outbound_routing_entry

def outbound_routing_direct_create(self, routing_group_id, lpm, counter_id=None, dash_tunnel_id=0):
def outbound_routing_direct_create(self, outbound_routing_group_id, lpm, counter_id=None, dash_tunnel_id=0):
"""
Create outband vnet direct routing entry
"""

outbound_routing_entry = sai_thrift_outbound_routing_entry_t(
switch_id=self.switch_id, routing_group_id=routing_group_id,
switch_id=self.switch_id, outbound_routing_group_id=outbound_routing_group_id,
destination=sai_ipprefix(lpm))
sai_thrift_create_outbound_routing_entry(self.client, outbound_routing_entry, counter_id=counter_id,
action=SAI_OUTBOUND_ROUTING_ENTRY_ACTION_ROUTE_DIRECT,
Expand All @@ -347,13 +347,13 @@ def outbound_routing_direct_create(self, routing_group_id, lpm, counter_id=None,

return outbound_routing_entry

def outbound_routing_vnet_create(self, routing_group_id, lpm, dst_vnet_id, counter_id=None, dash_tunnel_id=0):
def outbound_routing_vnet_create(self, outbound_routing_group_id, lpm, dst_vnet_id, counter_id=None, dash_tunnel_id=0):
"""
Create outbound vnet routing entry
"""

outbound_routing_entry = sai_thrift_outbound_routing_entry_t(
switch_id=self.switch_id, routing_group_id=routing_group_id,
switch_id=self.switch_id, outbound_routing_group_id=outbound_routing_group_id,
destination=sai_ipprefix(lpm))
sai_thrift_create_outbound_routing_entry(self.client,
outbound_routing_entry, dst_vnet_id=dst_vnet_id,
Expand Down
Loading
Loading