FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
nat44_ei_ha.c File Reference
+ Include dependency graph for nat44_ei_ha.c:

Go to the source code of this file.

Data Structures

struct  nat_ha_message_header_t
 
struct  nat_ha_event_t
 
struct  nat_ha_resend_entry_t
 
struct  nat_ha_per_thread_data_t
 
struct  nat_ha_main_s
 
struct  nat_ha_trace_t
 
struct  nat_ha_handoff_trace_t
 

Macros

#define NAT_HA_RETRIES   3
 
#define foreach_nat_ha_counter
 
#define NAT_HA_VERSION   0x01
 
#define NAT_HA_FLAG_ACK   0x01
 
#define skip_if_disabled()
 
#define foreach_nat_ha_error
 
#define foreach_nat_ha_handoff_error
 

Typedefs

typedef struct nat_ha_main_s nat_ha_main_t
 

Enumerations

enum  nat_ha_event_type_t { NAT_HA_ADD = 1, NAT_HA_DEL, NAT_HA_REFRESH }
 
enum  nat_ha_counter_t { NAT_HA_N_COUNTERS }
 
enum  nat_ha_next_t { NAT_HA_NEXT_IP4_LOOKUP, NAT_HA_NEXT_DROP, NAT_HA_N_NEXT }
 
enum  nat_ha_error_t { NAT_HA_N_ERROR }
 
enum  nat_ha_handoff_error_t { NAT_HA_HANDOFF_N_ERROR }
 

Functions

static_always_inline void nat44_ei_ha_sadd (ip4_address_t *in_addr, u16 in_port, ip4_address_t *out_addr, u16 out_port, ip4_address_t *eh_addr, u16 eh_port, ip4_address_t *ehn_addr, u16 ehn_port, u8 proto, u32 fib_index, u16 flags, u32 thread_index)
 
static_always_inline void nat44_ei_ha_sdel (ip4_address_t *out_addr, u16 out_port, ip4_address_t *eh_addr, u16 eh_port, u8 proto, u32 fib_index, u32 thread_index)
 
static_always_inline void nat44_ei_ha_sref (ip4_address_t *out_addr, u16 out_port, ip4_address_t *eh_addr, u16 eh_port, u8 proto, u32 fib_index, u32 total_pkts, u64 total_bytes, u32 thread_index)
 
static void nat_ha_resync_fin (void)
 
static int nat_ha_resend_queue_add (vlib_main_t *vm, u32 seq, u8 *data, u8 data_len, u8 is_resync, u32 vlib_thread_index)
 
static_always_inline void nat_ha_ack_recv (u32 seq, u32 thread_index)
 
static void nat_ha_resend_scan (vlib_main_t *vm, u32 thread_index)
 
void nat_ha_enable ()
 Enable NAT HA. More...
 
void nat_ha_disable ()
 Disable NAT HA. More...
 
void nat_ha_set_node_indexes (nat_ha_main_t *ha, vlib_main_t *vm)
 
void nat_ha_init (vlib_main_t *vm, u32 num_workers, u32 num_threads)
 Initialize NAT HA. More...
 
int nat_ha_set_listener (vlib_main_t *vm, ip4_address_t *addr, u16 port, u32 path_mtu)
 Set HA listener (local settings) More...
 
void nat_ha_get_listener (ip4_address_t *addr, u16 *port, u32 *path_mtu)
 Get HA listener/local configuration. More...
 
int nat_ha_set_failover (vlib_main_t *vm, ip4_address_t *addr, u16 port, u32 session_refresh_interval)
 Set HA failover (remote settings) More...
 
void nat_ha_get_failover (ip4_address_t *addr, u16 *port, u32 *session_refresh_interval)
 Get HA failover/remote settings. More...
 
static_always_inline void nat_ha_recv_add (nat_ha_event_t *event, f64 now, u32 thread_index)
 
static_always_inline void nat_ha_recv_del (nat_ha_event_t *event, u32 thread_index)
 
static_always_inline void nat_ha_recv_refresh (nat_ha_event_t *event, f64 now, u32 thread_index)
 
static_always_inline void nat_ha_event_process (nat_ha_event_t *event, f64 now, u32 thread_index)
 
static void nat_ha_header_create (vlib_buffer_t *b, u32 *offset, u32 thread_index)
 
static void nat_ha_send (vlib_frame_t *f, vlib_buffer_t *b, u8 is_resync, u32 vlib_thread_index)
 
static_always_inline void nat_ha_event_add (nat_ha_event_t *event, u8 do_flush, u32 session_thread_index, u8 is_resync)
 
void nat_ha_flush (u8 is_resync)
 Flush the current HA data (for testing) More...
 
void nat_ha_sadd (ip4_address_t *in_addr, u16 in_port, ip4_address_t *out_addr, u16 out_port, ip4_address_t *eh_addr, u16 eh_port, ip4_address_t *ehn_addr, u16 ehn_port, u8 proto, u32 fib_index, u16 flags, u32 thread_index, u8 is_resync)
 Create session add HA event. More...
 
void nat_ha_sdel (ip4_address_t *out_addr, u16 out_port, ip4_address_t *eh_addr, u16 eh_port, u8 proto, u32 fib_index, u32 session_thread_index)
 Create session delete HA event. More...
 
void nat_ha_sref (ip4_address_t *out_addr, u16 out_port, ip4_address_t *eh_addr, u16 eh_port, u8 proto, u32 fib_index, u32 total_pkts, u64 total_bytes, u32 thread_index, f64 *last_refreshed, f64 now)
 Create session refresh HA event. More...
 
static_always_inline u8 plugin_enabled ()
 
static uword nat_ha_worker_fn (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static uword nat_ha_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
void nat_ha_get_resync_status (u8 *in_resync, u32 *resync_ack_missed)
 Get resync status. More...
 
static u8format_nat_ha_trace (u8 *s, va_list *args)
 
static uword nat_ha_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static u8format_nat_ha_handoff_trace (u8 *s, va_list *args)
 
static uword nat_ha_handoff_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
int nat_ha_resync (u32 client_index, u32 pid, nat_ha_resync_event_cb_t event_callback)
 Resync HA (resend existing sessions to new failover) More...
 

Variables

nat_ha_main_t nat_ha_main
 
vlib_node_registration_t nat_ha_worker_node
 (constructor) VLIB_REGISTER_NODE (nat_ha_worker_node) More...
 
vlib_node_registration_t nat_ha_process_node
 (constructor) VLIB_REGISTER_NODE (nat_ha_process_node) More...
 
static char * nat_ha_error_strings []
 
vlib_node_registration_t nat_ha_node
 (constructor) VLIB_REGISTER_NODE (nat_ha_node) More...
 
static char * nat_ha_handoff_error_strings []
 
vlib_node_registration_t nat_ha_handoff_node
 (constructor) VLIB_REGISTER_NODE (nat_ha_handoff_node) More...
 

Macro Definition Documentation

◆ foreach_nat_ha_counter

#define foreach_nat_ha_counter
Value:
_(RECV_ADD, "add-event-recv", 0) \
_(RECV_DEL, "del-event-recv", 1) \
_(RECV_REFRESH, "refresh-event-recv", 2) \
_(SEND_ADD, "add-event-send", 3) \
_(SEND_DEL, "del-event-send", 4) \
_(SEND_REFRESH, "refresh-event-send", 5) \
_(RECV_ACK, "ack-recv", 6) \
_(SEND_ACK, "ack-send", 7) \
_(RETRY_COUNT, "retry-count", 8) \
_(MISSED_COUNT, "missed-count", 9)

Definition at line 30 of file nat44_ei_ha.c.

◆ foreach_nat_ha_error

#define foreach_nat_ha_error
Value:
_(PROCESSED, "pkts-processed") \
_(BAD_VERSION, "bad-version")

Definition at line 1015 of file nat44_ei_ha.c.

◆ foreach_nat_ha_handoff_error

#define foreach_nat_ha_handoff_error
Value:
_(CONGESTION_DROP, "congestion drop") \
_(SAME_WORKER, "same worker") \
_(DO_HANDOFF, "do handoff")

Definition at line 1192 of file nat44_ei_ha.c.

◆ NAT_HA_FLAG_ACK

#define NAT_HA_FLAG_ACK   0x01

Definition at line 46 of file nat44_ei_ha.c.

◆ NAT_HA_RETRIES

#define NAT_HA_RETRIES   3

Definition at line 28 of file nat44_ei_ha.c.

◆ NAT_HA_VERSION

#define NAT_HA_VERSION   0x01

Definition at line 43 of file nat44_ei_ha.c.

◆ skip_if_disabled

#define skip_if_disabled ( )
Value:
do { \
nat_ha_main_t *ha = &nat_ha_main; \
if (PREDICT_TRUE (!ha->dst_port)) \
return; \
} while (0)

Definition at line 819 of file nat44_ei_ha.c.

Typedef Documentation

◆ nat_ha_main_t

typedef struct nat_ha_main_s nat_ha_main_t

Enumeration Type Documentation

◆ nat_ha_counter_t

Enumerator
NAT_HA_N_COUNTERS 

Definition at line 92 of file nat44_ei_ha.c.

◆ nat_ha_error_t

Enumerator
NAT_HA_N_ERROR 

Definition at line 1019 of file nat44_ei_ha.c.

◆ nat_ha_event_type_t

Enumerator
NAT_HA_ADD 
NAT_HA_DEL 
NAT_HA_REFRESH 

Definition at line 49 of file nat44_ei_ha.c.

◆ nat_ha_handoff_error_t

Enumerator
NAT_HA_HANDOFF_N_ERROR 

Definition at line 1197 of file nat44_ei_ha.c.

◆ nat_ha_next_t

Enumerator
NAT_HA_NEXT_IP4_LOOKUP 
NAT_HA_NEXT_DROP 
NAT_HA_N_NEXT 

Definition at line 1008 of file nat44_ei_ha.c.

Function Documentation

◆ format_nat_ha_handoff_trace()

static u8* format_nat_ha_handoff_trace ( u8 s,
va_list *  args 
)
static

Definition at line 1212 of file nat44_ei_ha.c.

◆ format_nat_ha_trace()

static u8* format_nat_ha_trace ( u8 s,
va_list *  args 
)
static

Definition at line 996 of file nat44_ei_ha.c.

◆ nat44_ei_ha_sadd()

static_always_inline void nat44_ei_ha_sadd ( ip4_address_t in_addr,
u16  in_port,
ip4_address_t out_addr,
u16  out_port,
ip4_address_t eh_addr,
u16  eh_port,
ip4_address_t ehn_addr,
u16  ehn_port,
u8  proto,
u32  fib_index,
u16  flags,
u32  thread_index 
)

Definition at line 174 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat44_ei_ha_sdel()

static_always_inline void nat44_ei_ha_sdel ( ip4_address_t out_addr,
u16  out_port,
ip4_address_t eh_addr,
u16  eh_port,
u8  proto,
u32  fib_index,
u32  thread_index 
)

Definition at line 255 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat44_ei_ha_sref()

static_always_inline void nat44_ei_ha_sref ( ip4_address_t out_addr,
u16  out_port,
ip4_address_t eh_addr,
u16  eh_port,
u8  proto,
u32  fib_index,
u32  total_pkts,
u64  total_bytes,
u32  thread_index 
)

Definition at line 276 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_ack_recv()

static_always_inline void nat_ha_ack_recv ( u32  seq,
u32  thread_index 
)

Definition at line 340 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_disable()

void nat_ha_disable ( )

Disable NAT HA.

Definition at line 450 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_enable()

void nat_ha_enable ( )

Enable NAT HA.

Definition at line 443 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_event_add()

static_always_inline void nat_ha_event_add ( nat_ha_event_t event,
u8  do_flush,
u32  session_thread_index,
u8  is_resync 
)

Definition at line 725 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_event_process()

static_always_inline void nat_ha_event_process ( nat_ha_event_t event,
f64  now,
u32  thread_index 
)

Definition at line 630 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_flush()

void nat_ha_flush ( u8  is_resync)

Flush the current HA data (for testing)

Definition at line 827 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_get_failover()

void nat_ha_get_failover ( ip4_address_t addr,
u16 port,
u32 session_refresh_interval 
)

Get HA failover/remote settings.

Definition at line 555 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_get_listener()

void nat_ha_get_listener ( ip4_address_t addr,
u16 port,
u32 path_mtu 
)

Get HA listener/local configuration.

Definition at line 530 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_get_resync_status()

void nat_ha_get_resync_status ( u8 in_resync,
u32 resync_ack_missed 
)

Get resync status.

Parameters
in_resync1 if resync in progress
resync_ack_missednumber of missed (not ACKed) messages

Definition at line 981 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_handoff_node_fn()

static uword nat_ha_handoff_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 1226 of file nat44_ei_ha.c.

+ Here is the call graph for this function:

◆ nat_ha_header_create()

static void nat_ha_header_create ( vlib_buffer_t b,
u32 offset,
u32  thread_index 
)
inlinestatic

Definition at line 652 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_init()

void nat_ha_init ( vlib_main_t vm,
u32  num_workers,
u32  num_threads 
)

Initialize NAT HA.

Definition at line 473 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_node_fn()

static uword nat_ha_node_fn ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 1035 of file nat44_ei_ha.c.

+ Here is the call graph for this function:

◆ nat_ha_process()

static uword nat_ha_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 940 of file nat44_ei_ha.c.

+ Here is the call graph for this function:

◆ nat_ha_recv_add()

static_always_inline void nat_ha_recv_add ( nat_ha_event_t event,
f64  now,
u32  thread_index 
)

Definition at line 566 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_recv_del()

static_always_inline void nat_ha_recv_del ( nat_ha_event_t event,
u32  thread_index 
)

Definition at line 589 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_recv_refresh()

static_always_inline void nat_ha_recv_refresh ( nat_ha_event_t event,
f64  now,
u32  thread_index 
)

Definition at line 607 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_resend_queue_add()

static int nat_ha_resend_queue_add ( vlib_main_t vm,
u32  seq,
u8 data,
u8  data_len,
u8  is_resync,
u32  vlib_thread_index 
)
static

Definition at line 321 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_resend_scan()

static void nat_ha_resend_scan ( vlib_main_t vm,
u32  thread_index 
)
static

Definition at line 371 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_resync()

int nat_ha_resync ( u32  client_index,
u32  pid,
nat_ha_resync_event_cb_t  event_callback 
)

Resync HA (resend existing sessions to new failover)

Definition at line 1283 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_resync_fin()

static void nat_ha_resync_fin ( void  )
static

Definition at line 297 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

◆ nat_ha_sadd()

void nat_ha_sadd ( ip4_address_t in_addr,
u16  in_port,
ip4_address_t out_addr,
u16  out_port,
ip4_address_t eh_addr,
u16  eh_port,
ip4_address_t ehn_addr,
u16  ehn_port,
u8  proto,
u32  fib_index,
u16  flags,
u32  thread_index,
u8  is_resync 
)

Create session add HA event.

Parameters
in_addrinside IPv4 address
in_portinside L4 port number
out_addroutside IPv4 address
out_portoutside L4 port number
eh_addrexternal host IPv4 address
eh_portexternal host L4 port number
ehn_addrexternal host IPv4 address after translation
ehn_portexternal host L4 port number after translation
protoL4 protocol
fib_indexfib index
flagssession flags
thread_indexthread index
is_resync1 if HA resync

Definition at line 834 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_sdel()

void nat_ha_sdel ( ip4_address_t out_addr,
u16  out_port,
ip4_address_t eh_addr,
u16  eh_port,
u8  proto,
u32  fib_index,
u32  session_thread_index 
)

Create session delete HA event.

Parameters
out_addroutside IPv4 address
out_portoutside L4 port number
eh_addrexternal host IPv4 address
eh_portexternal host L4 port number
protoL4 protocol
fib_indexfib index
session_thread_indexindex of thread where this session was stored

Definition at line 860 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_send()

static void nat_ha_send ( vlib_frame_t f,
vlib_buffer_t b,
u8  is_resync,
u32  vlib_thread_index 
)
inlinestatic

Definition at line 697 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_set_failover()

int nat_ha_set_failover ( vlib_main_t vm,
ip4_address_t addr,
u16  port,
u32  session_refresh_interval 
)

Set HA failover (remote settings)

Parameters
addrfailover IP4 address
portfailvoer UDP port number
session_refresh_intervalnumber of seconds after which to send session counters refresh
Returns
0 on success, non-zero value otherwise.

Definition at line 540 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_set_listener()

int nat_ha_set_listener ( vlib_main_t vm,
ip4_address_t addr,
u16  port,
u32  path_mtu 
)

Set HA listener (local settings)

Parameters
addrlocal IP4 address
portlocal UDP port number
path_mtupath MTU between local and failover
Returns
0 on success, non-zero value otherwise.

Definition at line 495 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_set_node_indexes()

void nat_ha_set_node_indexes ( nat_ha_main_t ha,
vlib_main_t vm 
)

Definition at line 458 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_sref()

void nat_ha_sref ( ip4_address_t out_addr,
u16  out_port,
ip4_address_t eh_addr,
u16  eh_port,
u8  proto,
u32  fib_index,
u32  total_pkts,
u64  total_bytes,
u32  thread_index,
f64 last_refreshed,
f64  now 
)

Create session refresh HA event.

Parameters
out_addroutside IPv4 address
out_portoutside L4 port number
eh_addrexternal host IPv4 address
eh_portexternal host L4 port number
protoL4 protocol
fib_indexfib index
total_pktstotal packets processed
total_bytestotal bytes processed
thread_indexthread index
last_refreshedlast session refresh time
nowcurrent time

Definition at line 879 of file nat44_ei_ha.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ha_worker_fn()

static uword nat_ha_worker_fn ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 914 of file nat44_ei_ha.c.

+ Here is the call graph for this function:

◆ plugin_enabled()

static_always_inline u8 plugin_enabled ( )

Definition at line 906 of file nat44_ei_ha.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ nat_ha_error_strings

char* nat_ha_error_strings[]
static
Initial value:
= {
#define _(sym, str)
}

Definition at line 1027 of file nat44_ei_ha.c.

◆ nat_ha_handoff_error_strings

char* nat_ha_handoff_error_strings[]
static
Initial value:
= {
#define _(sym,string)
}

Definition at line 1205 of file nat44_ei_ha.c.

◆ nat_ha_handoff_node

vlib_node_registration_t nat_ha_handoff_node
Initial value:
= {
.name = "nat44-ei-ha-handoff",
.vector_size = sizeof (u32),
.format_trace = format_nat_ha_handoff_trace,
.error_strings = nat_ha_handoff_error_strings,
.n_next_nodes = 1,
.next_nodes = {
[0] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (nat_ha_handoff_node)

Definition at line 1290 of file nat44_ei_ha.c.

◆ nat_ha_main

nat_ha_main_t nat_ha_main

Definition at line 171 of file nat44_ei_ha.c.

◆ nat_ha_node

Initial value:
= {
.function = nat_ha_node_fn,
.name = "nat44-ei-ha",
.vector_size = sizeof (u32),
.format_trace = format_nat_ha_trace,
.error_strings = nat_ha_error_strings,
.n_next_nodes = NAT_HA_N_NEXT,
.next_nodes = {
[NAT_HA_NEXT_IP4_LOOKUP] = "ip4-lookup",
[NAT_HA_NEXT_DROP] = "error-drop",
},
}

(constructor) VLIB_REGISTER_NODE (nat_ha_node)

Definition at line 1170 of file nat44_ei_ha.c.

◆ nat_ha_process_node

vlib_node_registration_t nat_ha_process_node
Initial value:
= {
.function = nat_ha_process,
.name = "nat44-ei-ha-process",
}

(constructor) VLIB_REGISTER_NODE (nat_ha_process_node)

Definition at line 973 of file nat44_ei_ha.c.

◆ nat_ha_worker_node

vlib_node_registration_t nat_ha_worker_node
Initial value:
= {
.function = nat_ha_worker_fn,
.state = VLIB_NODE_STATE_INTERRUPT,
.name = "nat44-ei-ha-worker",
}

(constructor) VLIB_REGISTER_NODE (nat_ha_worker_node)

Definition at line 930 of file nat44_ei_ha.c.

NAT_HA_N_NEXT
@ NAT_HA_N_NEXT
Definition: nat44_ei_ha.c:1012
foreach_nat_ha_error
#define foreach_nat_ha_error
Definition: nat44_ei_ha.c:1015
VLIB_NODE_TYPE_INTERNAL
@ VLIB_NODE_TYPE_INTERNAL
Definition: node.h:72
VLIB_NODE_TYPE_INPUT
@ VLIB_NODE_TYPE_INPUT
Definition: node.h:76
nat_ha_process
static uword nat_ha_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: nat44_ei_ha.c:940
nat_ha_node_fn
static uword nat_ha_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: nat44_ei_ha.c:1035
nat_ha_handoff_node_fn
static uword nat_ha_handoff_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: nat44_ei_ha.c:1226
nat_ha_main
nat_ha_main_t nat_ha_main
Definition: nat44_ei_ha.c:171
nat_ha_error_strings
static char * nat_ha_error_strings[]
Definition: nat44_ei_ha.c:1027
ARRAY_LEN
#define ARRAY_LEN(x)
Definition: clib.h:70
NAT_HA_NEXT_IP4_LOOKUP
@ NAT_HA_NEXT_IP4_LOOKUP
Definition: nat44_ei_ha.c:1010
NAT_HA_NEXT_DROP
@ NAT_HA_NEXT_DROP
Definition: nat44_ei_ha.c:1011
u32
unsigned int u32
Definition: types.h:88
nat_ha_worker_fn
static uword nat_ha_worker_fn(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: nat44_ei_ha.c:914
VLIB_NODE_TYPE_PROCESS
@ VLIB_NODE_TYPE_PROCESS
Definition: node.h:84
foreach_nat_ha_handoff_error
#define foreach_nat_ha_handoff_error
Definition: nat44_ei_ha.c:1192
PREDICT_TRUE
#define PREDICT_TRUE(x)
Definition: clib.h:125
type
vl_api_fib_path_type_t type
Definition: fib_types.api:123
format_nat_ha_handoff_trace
static u8 * format_nat_ha_handoff_trace(u8 *s, va_list *args)
Definition: nat44_ei_ha.c:1212
format_nat_ha_trace
static u8 * format_nat_ha_trace(u8 *s, va_list *args)
Definition: nat44_ei_ha.c:996
nat_ha_handoff_error_strings
static char * nat_ha_handoff_error_strings[]
Definition: nat44_ei_ha.c:1205