|
|
|
@ -146,15 +146,15 @@ action nat46_generic(ipv6_addr_t src, ipv6_addr_t dst) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* matching key: v4_network specified again */ |
|
|
|
|
action nat46_static(ipv6_addr_t v6_src, ipv4_addr_t v4_dst, ipv6_addr_t nat64_prefix) { |
|
|
|
|
ipv6_addr_t src = nat64_prefix + (ipv6_addr_t) hdr.ipv4.src_addr; |
|
|
|
|
/* matching key: v4_network specified again */ |
|
|
|
|
action nat46_static(ipv6_addr_t v6_src, ipv4_addr_t v4_dst, ipv6_addr_t nat64_prefix) { |
|
|
|
|
ipv6_addr_t src = nat64_prefix + (ipv6_addr_t) hdr.ipv4.src_addr; |
|
|
|
|
|
|
|
|
|
ipv4_addr_t dst_offset = hdr.ipv4.dst_addr - v4_dst; |
|
|
|
|
ipv6_addr_t dst = v6_src + (ipv6_addr_t) dst_offset; |
|
|
|
|
ipv4_addr_t dst_offset = hdr.ipv4.dst_addr - v4_dst; |
|
|
|
|
ipv6_addr_t dst = v6_src + (ipv6_addr_t) dst_offset; |
|
|
|
|
|
|
|
|
|
nat46_generic(src, dst); |
|
|
|
|
} |
|
|
|
|
nat46_generic(src, dst); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
table nat64 { |
|
|
|
|
key = { |
|
|
|
|