diff --git a/p4app/controller.py b/p4app/controller.py index 6f083c4..cd65ce8 100755 --- a/p4app/controller.py +++ b/p4app/controller.py @@ -547,8 +547,17 @@ class L2Controller(object): tcp_dst_port = pkg[TCP].dport # FIXME: range, reuse, etc. - ipv4_src_addr = self.nat64_session_net[self.mode] - self.nat64_session_net[self.mode] += 1 + idx = self.nat64_session_net[self.mode]['v4_idx'] + self.nat64_session_net[self.mode]['v4_idx'] += 1 + + ipv4_src_addr = self.nat64_session_net[self.mode]['v4_net'][idx] + ipv6_dst_addr = ipaddress.IPv6Address(pkg[IPv6].dst) + ipv4_dst_addr = int(ipv6_dst_addr) - int(self.nat64_session_net[self.mode]['v6_net'][0]) + + log.debug("src v4={}, dst v6 = {}, dst v4 = {}".format(ipv4_src_addr, + ipv6_dst_addr, + ipv4_dst_addr) + self.controller.table_add("nat64_tcp_session",