16 #ifndef __included_lib_nat_inlines_h__ 17 #define __included_lib_nat_inlines_h__ 27 v = clib_net_to_host_u32 (a->
as_u32) + 1;
28 a->
as_u32 = clib_host_to_net_u32 (v);
35 u8 opt_len, opts_len, kind;
38 if (!(mss_clamping &&
tcp_syn (tcp)))
42 data = (
u8 *) (tcp + 1);
43 for (; opts_len > 0; opts_len -= opt_len, data += opt_len)
60 if (opt_len < 2 || opt_len > opts_len)
66 mss = *(
u16 *) (data + 2);
69 u16 mss_value_net = clib_host_to_net_u16 (mss_clamping);
88 if (r >= min && r <= max)
91 return min + (rwide % (max - min + 1));
static void mss_clamping(u16 mss_clamping, tcp_header_t *tcp, ip_csum_t *sum)
vnet_hw_if_output_node_runtime_t * r
struct _tcp_header tcp_header_t
#define static_always_inline
static_always_inline u16 nat_random_port(u32 *random_seed, u16 min, u16 max)
static_always_inline void * clib_memcpy_fast(void *restrict dst, const void *restrict src, size_t n)
#define ip_csum_update(sum, old, new, type, field)
static void increment_v4_address(ip4_address_t *a)
static u32 random_u32(u32 *seed)
32-bit random number generator