diff --git a/ansible/roles/test/files/acstests/everflow_tb_test.py b/ansible/roles/test/files/acstests/everflow_tb_test.py index abcc2c8d57d..eff2d272bcb 100644 --- a/ansible/roles/test/files/acstests/everflow_tb_test.py +++ b/ansible/roles/test/files/acstests/everflow_tb_test.py @@ -90,6 +90,16 @@ def setUp(self): ip_ttl = 64 ) + self.base_v6_pkt = testutils.simple_tcpv6_packet( + eth_dst = self.router_mac, + eth_src = self.dataplane.get_mac(0, 0), + ipv6_src = "2001:0db8:85a3:0000:0000:8a2e:0370:7333/128", + ipv6_dst = "3001:0db8:85a3:0000:0000:8a2e:0370:7333/128", + tcp_sport = 0x1234, + tcp_dport = 0x50, + ipv6_hlim = 64 + ) + def receivePacketOnPorts(self, ports=[], device_number=0): ''' @@ -222,6 +232,20 @@ def verifyIpDscp(self): return self.runSendReceiveTest(pkt, self.src_port, self.dst_ports) + @reportResults("Verify SRC IPv6 match") + def verifySrcIpv6(self): + pkt = self.base_v6_pkt.copy() + pkt['IPv6'].src = "2001:0db8:85a3:0000:0000:8a2e:0370:7334" + return self.runSendReceiveTest(pkt, self.src_port, self.dst_ports) + + + @reportResults("Verify DST IPv6 match") + def verifyDstIpv6(self): + pkt = self.base_v6_pkt.copy() + pkt['IPv6'].dst = "3001:0db8:85a3:0000:0000:8a2e:0370:7334" + return self.runSendReceiveTest(pkt, self.src_port, self.dst_ports) + + def runEverflowTests(self): """ @summary: Crete and send packet to verify each ACL rule @@ -237,6 +261,12 @@ def runEverflowTests(self): if self.verifyDstIp(): tests_passed += 1 + if self.verifySrcIpv6(): + tests_passed += 1 + + if self.verifyDstIpv6(): + tests_passed += 1 + if self.verifyL4SrcPort(): tests_passed += 1 diff --git a/ansible/roles/test/tasks/everflow_testbed/apply_config.yml b/ansible/roles/test/tasks/everflow_testbed/apply_config.yml index c75e1b0337d..1bddc02b19d 100644 --- a/ansible/roles/test/tasks/everflow_testbed/apply_config.yml +++ b/ansible/roles/test/tasks/everflow_testbed/apply_config.yml @@ -14,5 +14,9 @@ - command: "config mirror_session add {{session_name}} {{session_src_ip}} {{session_dst_ip}} {{session_dscp}} {{session_ttl}} {{session_gre}} {{session_queue}}" become: yes -- command: "acl-loader update full {{ run_dir }}/acl_rule_persistent.json --session_name={{ session_name }}" - become: yes +- command: "acl-loader update full {{ run_dir }}/acl_rule_v6_persistent.json --session_name={{ session_name }} --table_name=EVERFLOWV6" + become: yes + +- command: "acl-loader update full {{ run_dir }}/acl_rule_persistent.json --session_name={{ session_name }} --table_name=EVERFLOW" + become: yes + diff --git a/ansible/roles/test/tasks/everflow_testbed/apply_config/acl_rule_v6_persistent.json b/ansible/roles/test/tasks/everflow_testbed/apply_config/acl_rule_v6_persistent.json new file mode 100644 index 00000000000..bb4840c328b --- /dev/null +++ b/ansible/roles/test/tasks/everflow_testbed/apply_config/acl_rule_v6_persistent.json @@ -0,0 +1,44 @@ +{ + "acl": { + "acl-sets": { + "acl-set": { + "everflowv6": { + "acl-entries": { + "acl-entry": { + "11": { + "actions": { + "config": { + "forwarding-action": "ACCEPT" + } + }, + "config": { + "sequence-id": 11 + }, + "ip": { + "config": { + "source-ip-address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334/128" + } + } + }, + "12": { + "actions": { + "config": { + "forwarding-action": "ACCEPT" + } + }, + "config": { + "sequence-id": 12 + }, + "ip": { + "config": { + "destination-ip-address": "3001:0db8:85a3:0000:0000:8a2e:0370:7334/128" + } + } + } + } + } + } + } + } + } +}