- def configure_sa_tun(self):
- scapy_tun_sa = SecurityAssociation(self.encryption_type,
- spi=self.vpp_tun_spi,
- crypt_algo=self.crypt_algo,
- crypt_key=self.crypt_key,
- auth_algo=self.auth_algo,
- auth_key=self.auth_key,
- tunnel_header=IP(
- src=self.tun_if.remote_ip4,
- dst=self.tun_if.local_ip4))
- vpp_tun_sa = SecurityAssociation(self.encryption_type,
- spi=self.scapy_tun_spi,
- crypt_algo=self.crypt_algo,
- crypt_key=self.crypt_key,
- auth_algo=self.auth_algo,
- auth_key=self.auth_key,
- tunnel_header=IP(
- dst=self.tun_if.remote_ip4,
- src=self.tun_if.local_ip4))
+ def gen_pkts6(self, sw_intf, src, dst, count=1):
+ return [Ether(src=sw_intf.remote_mac, dst=sw_intf.local_mac) /
+ IPv6(src=src, dst=dst) /
+ ICMPv6EchoRequest(id=0, seq=1, data=self.payload)
+ for i in range(count)]
+
+ def configure_sa_tun(self, params):
+ ip_class_by_addr_type = {socket.AF_INET: IP, socket.AF_INET6: IPv6}
+ scapy_tun_sa = SecurityAssociation(
+ self.encryption_type, spi=params.vpp_tun_spi,
+ crypt_algo=params.crypt_algo, crypt_key=params.crypt_key,
+ auth_algo=params.auth_algo, auth_key=params.auth_key,
+ tunnel_header=ip_class_by_addr_type[params.addr_type](
+ src=self.tun_if.remote_addr[params.addr_type],
+ dst=self.tun_if.local_addr[params.addr_type]))
+ vpp_tun_sa = SecurityAssociation(
+ self.encryption_type, spi=params.scapy_tun_spi,
+ crypt_algo=params.crypt_algo, crypt_key=params.crypt_key,
+ auth_algo=params.auth_algo, auth_key=params.auth_key,
+ tunnel_header=ip_class_by_addr_type[params.addr_type](
+ dst=self.tun_if.remote_addr[params.addr_type],
+ src=self.tun_if.local_addr[params.addr_type]))