Skip to content

Commit

Permalink
add encap u1 test case (untested)
Browse files Browse the repository at this point in the history
  • Loading branch information
ShaofengWu123 committed Dec 19, 2024
1 parent a64037d commit b4c6b16
Showing 1 changed file with 93 additions and 32 deletions.
125 changes: 93 additions & 32 deletions test/test-cases/functional/ptf/saidashflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,14 @@ def __init__(self,
action = SAI_DASH_FLOW_ACTION_NONE,
exp_receive = False,
# Expected packet fields (overide values)
exp_outer_smac = "00:00:00:00:00:00",
exp_outer_dmac = "00:00:00:00:00:00",
exp_outer_sip = None,
exp_outer_dip = None,
exp_u0_smac = "00:00:00:00:00:00",
exp_u0_dmac = "00:00:00:00:00:00",
exp_u0_sip = None,
exp_u0_dip = None,
exp_u1_smac = "00:00:00:00:00:00",
exp_u1_dmac = "00:00:00:00:00:00",
exp_u1_sip = None,
exp_u1_dip = None,
exp_inner_smac = "00:00:00:00:00:00",
exp_inner_dmac = "00:00:00:00:00:00",
exp_inner_sip = None,
Expand Down Expand Up @@ -87,10 +91,14 @@ def __init__(self,
self.priority = priority
self.action = action
self.exp_receive = exp_receive
self.exp_outer_smac = exp_outer_smac
self.exp_outer_dmac = exp_outer_dmac
self.exp_outer_sip = exp_outer_sip
self.exp_outer_dip = exp_outer_dip
self.exp_u0_smac = exp_u0_smac
self.exp_u0_dmac = exp_u0_dmac
self.exp_u0_sip = exp_u0_sip
self.exp_u0_dip = exp_u0_dip
self.exp_u1_smac = exp_u1_smac
self.exp_u1_dmac = exp_u1_dmac
self.exp_u1_sip = exp_u1_sip
self.exp_u1_dip = exp_u1_dip
self.exp_inner_smac = exp_inner_smac
self.exp_inner_dmac = exp_inner_dmac
self.exp_inner_sip = exp_inner_sip
Expand Down Expand Up @@ -138,10 +146,10 @@ def runTest(self):
addr=sai_thrift_ip_addr_t(ip4=self.inner_sip))
dip_t = sai_thrift_ip_address_t(addr_family=SAI_IP_ADDR_FAMILY_IPV4,
addr=sai_thrift_ip_addr_t(ip4=self.inner_dip))
exp_outer_dip_t = sai_thrift_ip_address_t(addr_family=SAI_IP_ADDR_FAMILY_IPV4,
addr=sai_thrift_ip_addr_t(ip4=self.exp_outer_dip))
exp_outer_sip_t = sai_thrift_ip_address_t(addr_family=SAI_IP_ADDR_FAMILY_IPV4,
addr=sai_thrift_ip_addr_t(ip4=self.exp_outer_sip))
exp_u0_dip_t = sai_thrift_ip_address_t(addr_family=SAI_IP_ADDR_FAMILY_IPV4,
addr=sai_thrift_ip_addr_t(ip4=self.exp_u0_dip))
exp_u0_sip_t = sai_thrift_ip_address_t(addr_family=SAI_IP_ADDR_FAMILY_IPV4,
addr=sai_thrift_ip_addr_t(ip4=self.exp_u0_sip))
# Assemble flow entry
self.fe = sai_thrift_flow_entry_t(switch_id=self.switch_id, eni_mac=self.eni_mac, vnet_id=self.vnet_vni, ip_proto=self.protocol, src_ip=sip_t, dst_ip=dip_t, src_port=self.inner_sport, dst_port=self.inner_dport)
self.create_flow_entry(
Expand All @@ -165,10 +173,10 @@ def runTest(self):
# reverse_flow_dst_ip_is_v6=False,
# Flow encap related attributes
underlay0_vnet_id=self.vnet_vni,
underlay0_sip=exp_outer_sip_t,
underlay0_dip=exp_outer_dip_t,
underlay0_smac=self.exp_outer_smac,
underlay0_dmac=self.exp_outer_dmac,
underlay0_sip=exp_u0_sip_t,
underlay0_dip=exp_u0_dip_t,
underlay0_smac=self.exp_u0_smac,
underlay0_dmac=self.exp_u0_dmac,
underlay0_dash_encapsulation=SAI_DASH_ENCAPSULATION_VXLAN,
underlay1_vnet_id=None,
underlay1_sip=None,
Expand Down Expand Up @@ -218,16 +226,28 @@ def runTest(self):
udp_dport=self.exp_inner_dport)
if self.action & SAI_DASH_FLOW_ACTION_ENCAP_U0:
vxlan_exp_pkt = simple_vxlan_packet(
eth_dst=self.exp_outer_dmac,
eth_src=self.exp_outer_smac,
ip_dst=self.exp_outer_dip,
ip_src=self.exp_outer_sip,
eth_dst=self.exp_u0_dmac,
eth_src=self.exp_u0_smac,
ip_dst=self.exp_u0_dip,
ip_src=self.exp_u0_sip,
udp_sport=0, # hard-coded in dash_tunnel.p4
udp_dport=4789, # hard-coded in dash_tunnel.p4
with_udp_chksum=False,
vxlan_vni=self.vnet_vni,
inner_frame=inner_exp_pkt)
pkt_exp = vxlan_exp_pkt
if self.action & SAI_DASH_FLOW_ACTION_ENCAP_U1:
vxlan_exp_pkt = simple_vxlan_packet(
eth_dst=self.exp_u1_dmac,
eth_src=self.exp_u1_smac,
ip_dst=self.exp_u1_dip,
ip_src=self.exp_u1_sip,
udp_sport=0, # hard-coded in dash_tunnel.p4
udp_dport=4789, # hard-coded in dash_tunnel.p4
with_udp_chksum=False,
vxlan_vni=self.vnet_vni,
inner_frame=pkt_exp)
pkt_exp = vxlan_exp_pkt
else:
print("Expected packet without encap...")
pkt_exp = inner_exp_pkt
Expand Down Expand Up @@ -482,10 +502,51 @@ def setupTest(self):
priority = 1,
action = SAI_DASH_FLOW_ACTION_ENCAP_U0,
exp_receive = True,
exp_outer_smac = self.eni_mac,
exp_outer_dmac = self.underlay_dmac,
exp_outer_sip = self.src_vm_pa_ip,
exp_outer_dip = self.dst_pa_ip,
exp_u0_smac = self.eni_mac,
exp_u0_dmac = self.underlay_dmac,
exp_u0_sip = self.src_vm_pa_ip,
exp_u0_dip = self.dst_pa_ip,
exp_inner_smac = self.vm_mac,
exp_inner_dmac = self.dst_ca_mac,
exp_inner_sip = self.src_vm_ca_ip,
exp_inner_dip = self.dst_ca_ip,
exp_inner_sport = self.src_vm_port,
exp_inner_dport = self.dst_port
))

# Test case xx: flow hit (5 tuple)
# action: encap_u0 | encap_u1
# expected: pass
self.tests.append(FlowTest(saithrift = self,
name = "FlowHitActionEncapU0EncapU1",
create_entry = True,
switch_id = self.switch_id,
vnet_vni = self.vnet_vni,
vnet_id = self.vnet_id,
outbound_vni = self.outbound_vni,
eni_mac = self.vm_mac,
outer_smac = "00:00:00:00:00:00",
outer_dmac = "00:00:00:00:00:00",
outer_sip = self.src_vm_pa_ip,
outer_dip = self.vip,
inner_smac = self.vm_mac,
inner_dmac = self.dst_ca_mac,
protocol = 17,
inner_sip = self.src_vm_ca_ip,
inner_dip = self.dst_ca_ip,
inner_sport = self.src_vm_port,
inner_dport = self.dst_port,
priority = 1,
action = SAI_DASH_FLOW_ACTION_ENCAP_U0 | SAI_DASH_FLOW_ACTION_ENCAP_U1,
exp_receive = True,
exp_u0_smac = self.eni_mac,
exp_u0_dmac = self.underlay_dmac,
exp_u0_sip = self.src_vm_pa_ip,
exp_u0_dip = self.dst_pa_ip,
exp_u1_smac = "11:22:33:44:55:66",
exp_u1_dmac = "77:88:99:aa:bb:cc",
exp_u1_sip = "200.0.1.2",
exp_u1_dip = "200.3.4.5",
exp_inner_smac = self.vm_mac,
exp_inner_dmac = self.dst_ca_mac,
exp_inner_sip = self.src_vm_ca_ip,
Expand Down Expand Up @@ -553,10 +614,10 @@ def setupTest(self):
priority = 1,
action = SAI_DASH_FLOW_ACTION_ENCAP_U0 | SAI_DASH_FLOW_ACTION_SET_DMAC,
exp_receive = True,
exp_outer_smac = self.eni_mac,
exp_outer_dmac = self.underlay_dmac,
exp_outer_sip = self.src_vm_pa_ip,
exp_outer_dip = self.dst_pa_ip,
exp_u0_smac = self.eni_mac,
exp_u0_dmac = self.underlay_dmac,
exp_u0_sip = self.src_vm_pa_ip,
exp_u0_dip = self.dst_pa_ip,
exp_inner_smac = self.vm_mac,
exp_inner_dmac = self.overlay_write_dmac,
exp_inner_sip = self.src_vm_ca_ip,
Expand Down Expand Up @@ -590,10 +651,10 @@ def setupTest(self):
# priority = 1,
# action = SAI_DASH_FLOW_ACTION_ENCAP_U0 | SAI_DASH_FLOW_ACTION_SET_DMAC,
# exp_receive = True,
# exp_outer_smac = self.eni_mac,
# exp_outer_dmac = self.underlay_dmac,
# exp_outer_sip = self.src_vm_pa_ip,
# exp_outer_dip = self.dst_pa_ip,
# exp_u0_smac = self.eni_mac,
# exp_u0_dmac = self.underlay_dmac,
# exp_u0_sip = self.src_vm_pa_ip,
# exp_u0_dip = self.dst_pa_ip,
# exp_inner_smac = self.overlay_write_smac,
# exp_inner_dmac = self.dst_ca_mac,
# exp_inner_sip = self.src_vm_ca_ip,
Expand Down

0 comments on commit b4c6b16

Please sign in to comment.