X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnat%2Fin2out.c;h=7b712523f295f1861c1db1c7607392456f1881ae;hb=54eda4bcb80cfbaee16b26fad521d6ead5e0a518;hp=8d6f124f51b0d1709b9065f34b4e723a84732f07;hpb=2b4e7401499cdc7d51dec027745e0228d3f07b64;p=vpp.git diff --git a/src/plugins/nat/in2out.c b/src/plugins/nat/in2out.c index 8d6f124f51b..7b712523f29 100755 --- a/src/plugins/nat/in2out.c +++ b/src/plugins/nat/in2out.c @@ -1043,11 +1043,11 @@ snat_in2out_node_fn_inline (vlib_main_t * vm, * be able to use dhcp client on the outside interface */ if (PREDICT_FALSE - ((b0->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED) - && proto0 == SNAT_PROTOCOL_UDP + (proto0 == SNAT_PROTOCOL_UDP && (vnet_buffer (b0)->ip.reass.l4_dst_port == clib_host_to_net_u16 - (UDP_DST_PORT_dhcp_to_server)))) + (UDP_DST_PORT_dhcp_to_server)) + && ip0->dst_address.as_u32 == 0xffffffff)) goto trace00; } else @@ -1251,11 +1251,11 @@ snat_in2out_node_fn_inline (vlib_main_t * vm, * be able to use dhcp client on the outside interface */ if (PREDICT_FALSE - ((b1->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED) - && proto1 == SNAT_PROTOCOL_UDP + (proto1 == SNAT_PROTOCOL_UDP && (vnet_buffer (b1)->ip.reass.l4_dst_port == clib_host_to_net_u16 - (UDP_DST_PORT_dhcp_to_server)))) + (UDP_DST_PORT_dhcp_to_server)) + && ip1->dst_address.as_u32 == 0xffffffff)) goto trace01; } else @@ -1492,11 +1492,11 @@ snat_in2out_node_fn_inline (vlib_main_t * vm, * be able to use dhcp client on the outside interface */ if (PREDICT_FALSE - ((b0->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED) - && proto0 == SNAT_PROTOCOL_UDP + (proto0 == SNAT_PROTOCOL_UDP && (vnet_buffer (b0)->ip.reass.l4_dst_port == clib_host_to_net_u16 - (UDP_DST_PORT_dhcp_to_server)))) + (UDP_DST_PORT_dhcp_to_server)) + && ip0->dst_address.as_u32 == 0xffffffff)) goto trace0; } else