SNAT: fixed crash - interface without IP address (VPP-599)
Change-Id: I7f4d0cbde3d3c4ed6537e6351d5487546daea058 Signed-off-by: Matus Fabian <matfabia@cisco.com>
This commit is contained in:
committed by
Damjan Marion
parent
35b2607fcd
commit
67e7fcb181
@@ -350,7 +350,10 @@ static inline u32 icmp_in2out_slow_path (snat_main_t *sm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index0,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index0;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
@@ -640,7 +643,10 @@ snat_in2out_node_fn_inline (vlib_main_t * vm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index0,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index0;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
@@ -788,7 +794,10 @@ snat_in2out_node_fn_inline (vlib_main_t * vm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index1,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index1;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
@@ -971,7 +980,10 @@ snat_in2out_node_fn_inline (vlib_main_t * vm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index0,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index0;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
@@ -1350,7 +1362,10 @@ static inline u32 icmp_in2out_static_map (snat_main_t *sm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index0,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index0;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
|
||||
@@ -255,7 +255,10 @@ static inline u32 icmp_out2in_slow_path (snat_main_t *sm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index0,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index0;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
@@ -1043,7 +1046,10 @@ static inline u32 icmp_out2in_fast (snat_main_t *sm,
|
||||
ip4_interface_first_address (sm->ip4_main, sw_if_index0,
|
||||
0 /* just want the address */);
|
||||
rt->cached_sw_if_index = sw_if_index0;
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
if (first_int_addr)
|
||||
rt->cached_ip4_address = first_int_addr->as_u32;
|
||||
else
|
||||
rt->cached_ip4_address = 0;
|
||||
}
|
||||
|
||||
/* Don't NAT packet aimed at the intfc address */
|
||||
|
||||
Reference in New Issue
Block a user