NAT44 out2in DHCP client next node
Call vnet_feature_next() for DHCP replies instead of using default ip4-lookup. This allows DHCP replies to reach an outside interface if it's configured as a DHCP client. Change-Id: Icce1cd68b21256fcd6b1fad6792c06578b0e4e36 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
This commit is contained in:
Matthew Smith
committed by
Damjan Marion
parent
554075a51f
commit
6d2f214dab
@ -1105,10 +1105,14 @@ snat_out2in_node_fn (vlib_main_t * vm,
|
||||
* Send DHCP packets to the ipv4 stack, or we won't
|
||||
* be able to use dhcp client on the outside interface
|
||||
*/
|
||||
if (proto0 != SNAT_PROTOCOL_UDP
|
||||
if (PREDICT_TRUE (proto0 != SNAT_PROTOCOL_UDP
|
||||
|| (udp0->dst_port
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client)))
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client))))
|
||||
next0 = SNAT_OUT2IN_NEXT_DROP;
|
||||
else
|
||||
vnet_feature_next
|
||||
(vnet_buffer (b0)->sw_if_index[VLIB_RX],
|
||||
&next0, b0);
|
||||
goto trace0;
|
||||
}
|
||||
else
|
||||
@ -1268,10 +1272,14 @@ snat_out2in_node_fn (vlib_main_t * vm,
|
||||
* Send DHCP packets to the ipv4 stack, or we won't
|
||||
* be able to use dhcp client on the outside interface
|
||||
*/
|
||||
if (proto1 != SNAT_PROTOCOL_UDP
|
||||
if (PREDICT_TRUE (proto1 != SNAT_PROTOCOL_UDP
|
||||
|| (udp1->dst_port
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client)))
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client))))
|
||||
next1 = SNAT_OUT2IN_NEXT_DROP;
|
||||
else
|
||||
vnet_feature_next
|
||||
(vnet_buffer (b1)->sw_if_index[VLIB_RX],
|
||||
&next1, b1);
|
||||
goto trace1;
|
||||
}
|
||||
else
|
||||
@ -1467,10 +1475,14 @@ snat_out2in_node_fn (vlib_main_t * vm,
|
||||
* Send DHCP packets to the ipv4 stack, or we won't
|
||||
* be able to use dhcp client on the outside interface
|
||||
*/
|
||||
if (proto0 != SNAT_PROTOCOL_UDP
|
||||
if (PREDICT_TRUE (proto0 != SNAT_PROTOCOL_UDP
|
||||
|| (udp0->dst_port
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client)))
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client))))
|
||||
next0 = SNAT_OUT2IN_NEXT_DROP;
|
||||
else
|
||||
vnet_feature_next
|
||||
(vnet_buffer (b0)->sw_if_index[VLIB_RX],
|
||||
&next0, b0);
|
||||
goto trace00;
|
||||
}
|
||||
else
|
||||
@ -1707,10 +1719,14 @@ nat44_out2in_reass_node_fn (vlib_main_t * vm,
|
||||
* Send DHCP packets to the ipv4 stack, or we won't
|
||||
* be able to use dhcp client on the outside interface
|
||||
*/
|
||||
if (proto0 != SNAT_PROTOCOL_UDP
|
||||
if (PREDICT_TRUE (proto0 != SNAT_PROTOCOL_UDP
|
||||
|| (udp0->dst_port
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client)))
|
||||
!= clib_host_to_net_u16(UDP_DST_PORT_dhcp_to_client))))
|
||||
next0 = SNAT_OUT2IN_NEXT_DROP;
|
||||
else
|
||||
vnet_feature_next
|
||||
(vnet_buffer (b0)->sw_if_index[VLIB_RX],
|
||||
&next0, b0);
|
||||
goto trace0;
|
||||
}
|
||||
else
|
||||
|
Reference in New Issue
Block a user