3 changed files with 66 additions and 56 deletions
@ -0,0 +1,61 @@
|
||||
if(hdr.ipv6.isValid()) { |
||||
apply_v6networks = true; |
||||
|
||||
if(nat64.apply().hit) { /* generic / static nat64 done */ |
||||
if(hdr.icmp6.isValid()) { |
||||
nat64_icmp6_generic(); |
||||
|
||||
if(hdr.icmp6.type == ICMP6_ECHO_REPLY) { |
||||
hdr.icmp.type = ICMP_ECHO_REPLY; |
||||
hdr.icmp.code = 0; |
||||
} |
||||
if(hdr.icmp6.type == ICMP6_ECHO_REQUEST) { |
||||
hdr.icmp.type = ICMP_ECHO_REQUEST; |
||||
hdr.icmp.code = 0; |
||||
} |
||||
} |
||||
|
||||
if(hdr.udp.isValid()) { |
||||
delta_udp_from_v6_to_v4 |
||||
} |
||||
|
||||
if(hdr.tcp.isValid()) { |
||||
delta_tcp_from_v6_to_v4 |
||||
} |
||||
apply_v4networks = false; |
||||
apply_v6networks = true; |
||||
} |
||||
} else if(hdr.ipv4.isValid()) { |
||||
apply_v4networks = true; |
||||
|
||||
if(nat46.apply().hit) { |
||||
if(hdr.icmp.isValid()) { |
||||
nat46_icmp_generic(); |
||||
|
||||
if(hdr.icmp.type == ICMP_ECHO_REPLY) { |
||||
hdr.icmp6.type = ICMP6_ECHO_REPLY; |
||||
} |
||||
if(hdr.icmp.type == ICMP_ECHO_REQUEST) { |
||||
hdr.icmp6.type = ICMP6_ECHO_REQUEST; |
||||
} |
||||
} |
||||
if(hdr.udp.isValid()) { |
||||
delta_udp_from_v4_to_v6 |
||||
} |
||||
if(hdr.tcp.isValid()) { |
||||
delta_tcp_from_v4_to_v6 |
||||
} |
||||
apply_v4networks = true; |
||||
apply_v6networks = false; |
||||
} |
||||
} |
||||
|
||||
if(apply_v4networks == true) { |
||||
v4_networks.apply(); |
||||
} |
||||
|
||||
if(apply_v6networks == true) { |
||||
v6_networks.apply(); |
||||
} |
||||
|
||||
lookup_table.apply(); |
Loading…
Reference in new issue