FD.io VPP  v17.07-30-g839fa73
Vector Packet Processing
nat64_db.c File Reference

NAT64 DB. More...

+ Include dependency graph for nat64_db.c:

Go to the source code of this file.

Functions

int nat64_db_init (nat64_db_t *db)
 Initialize NAT64 DB. More...
 
nat64_db_bib_entry_t * nat64_db_bib_entry_create (nat64_db_t *db, ip6_address_t *in_addr, ip4_address_t *out_addr, u16 in_port, u16 out_port, u32 fib_index, snat_protocol_t proto, u8 is_static)
 Create new NAT64 BIB entry. More...
 
void nat64_db_bib_entry_free (nat64_db_t *db, nat64_db_bib_entry_t *bibe)
 Free NAT64 BIB entry. More...
 
nat64_db_bib_entry_t * nat64_db_bib_entry_find (nat64_db_t *db, ip46_address_t *addr, u16 port, snat_protocol_t proto, u32 fib_index, u8 is_ip6)
 Find NAT64 BIB entry. More...
 
void nat64_db_bib_walk (nat64_db_t *db, snat_protocol_t proto, nat64_db_bib_walk_fn_t fn, void *ctx)
 Walk NAT64 BIB. More...
 
nat64_db_bib_entry_t * nat64_db_bib_entry_by_index (nat64_db_t *db, snat_protocol_t proto, u32 bibe_index)
 Get BIB entry by index and protocol. More...
 
void nat64_db_st_walk (nat64_db_t *db, snat_protocol_t proto, nat64_db_st_walk_fn_t fn, void *ctx)
 Walk NAT64 session table. More...
 
nat64_db_st_entry_t * nat64_db_st_entry_create (nat64_db_t *db, nat64_db_bib_entry_t *bibe, ip6_address_t *in_r_addr, ip4_address_t *out_r_addr, u16 r_port)
 Create new NAT64 session table entry. More...
 
void nat64_db_st_entry_free (nat64_db_t *db, nat64_db_st_entry_t *ste)
 Free NAT64 session table entry. More...
 
nat64_db_st_entry_t * nat64_db_st_entry_find (nat64_db_t *db, ip46_address_t *l_addr, ip46_address_t *r_addr, u16 l_port, u16 r_port, snat_protocol_t proto, u32 fib_index, u8 is_ip6)
 Find NAT64 session table entry. More...
 
void nad64_db_st_free_expired (nat64_db_t *db, u32 now)
 Free expired session entries in session tables. More...
 

Detailed Description

NAT64 DB.

Definition in file nat64_db.c.

Function Documentation

void nad64_db_st_free_expired ( nat64_db_t db,
u32  now 
)

Free expired session entries in session tables.

Parameters
dbNAT64 DB.
nowCurrent time.

Definition at line 487 of file nat64_db.c.

+ Here is the caller graph for this function:

nat64_db_bib_entry_t* nat64_db_bib_entry_by_index ( nat64_db_t db,
snat_protocol_t  proto,
u32  bibe_index 
)

Get BIB entry by index and protocol.

Parameters
dbNAT64 DB.
protoL4 protocol.
bibe_indexBIB entry index.
Returns
BIB entry if found.

Definition at line 243 of file nat64_db.c.

+ Here is the caller graph for this function:

nat64_db_bib_entry_t* nat64_db_bib_entry_create ( nat64_db_t db,
ip6_address_t in_addr,
ip4_address_t out_addr,
u16  in_port,
u16  out_port,
u32  fib_index,
snat_protocol_t  proto,
u8  is_static 
)

Create new NAT64 BIB entry.

Parameters
dbNAT64 DB.
in_addrInside IPv6 address.
out_addrOutside IPv4 address.
in_portInside port number.
out_portOutside port number.
fib_indexFIB index.
protoL4 protocol.
is_static1 if static, 0 if dynamic.
Returns
BIB entry on success, 0 otherwise.

Definition at line 45 of file nat64_db.c.

+ Here is the caller graph for this function:

nat64_db_bib_entry_t* nat64_db_bib_entry_find ( nat64_db_t db,
ip46_address_t *  addr,
u16  port,
snat_protocol_t  proto,
u32  fib_index,
u8  is_ip6 
)

Find NAT64 BIB entry.

Parameters
dbNAT64 DB.
addrIP address.
portPort number.
protoL4 protocol.
fib_indexFIB index.
is_ip61 if find by IPv6 (inside) address, 0 by IPv4 (outside).
Returns
BIB entry if found.

Definition at line 171 of file nat64_db.c.

+ Here is the caller graph for this function:

void nat64_db_bib_entry_free ( nat64_db_t db,
nat64_db_bib_entry_t *  bibe 
)

Free NAT64 BIB entry.

Parameters
dbNAT64 DB.
bibeBIB entry.

Definition at line 105 of file nat64_db.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void nat64_db_bib_walk ( nat64_db_t db,
snat_protocol_t  proto,
nat64_db_bib_walk_fn_t  fn,
void *  ctx 
)

Walk NAT64 BIB.

Parameters
dbNAT64 DB.
protoBIB protocol (TCP/UDP/ICMP).
fnThe function to invoke on each entry visited.
ctxA context passed in the visit function.

Definition at line 213 of file nat64_db.c.

+ Here is the caller graph for this function:

int nat64_db_init ( nat64_db_t db)

Initialize NAT64 DB.

Parameters
dbNAT64 DB.
Returns
0 on success, non-zero value otherwise.

Definition at line 22 of file nat64_db.c.

+ Here is the caller graph for this function:

nat64_db_st_entry_t* nat64_db_st_entry_create ( nat64_db_t db,
nat64_db_bib_entry_t *  bibe,
ip6_address_t in_r_addr,
ip4_address_t out_r_addr,
u16  r_port 
)

Create new NAT64 session table entry.

Parameters
dbNAT64 DB.
bibeCorresponding BIB entry.
in_r_addrInside IPv6 address of the remote host.
out_r_addrOutside IPv4 address of the remote host.
r_portRemote host port number.
Returns
BIB entry on success, 0 otherwise.

Definition at line 297 of file nat64_db.c.

+ Here is the caller graph for this function:

nat64_db_st_entry_t* nat64_db_st_entry_find ( nat64_db_t db,
ip46_address_t *  l_addr,
ip46_address_t *  r_addr,
u16  l_port,
u16  r_port,
snat_protocol_t  proto,
u32  fib_index,
u8  is_ip6 
)

Find NAT64 session table entry.

Parameters
dbNAT64 DB.
l_addrLocal host address.
r_addrRemote host address.
l_portLocal host port number.
r_portRemote host port number.
protoL4 protocol.
fib_indexFIB index.
is_ip61 if find by IPv6 (inside) address, 0 by IPv4 (outside).
Returns
BIB entry if found.

Definition at line 439 of file nat64_db.c.

+ Here is the caller graph for this function:

void nat64_db_st_entry_free ( nat64_db_t db,
nat64_db_st_entry_t *  ste 
)

Free NAT64 session table entry.

Parameters
dbNAT64 DB.
steSession table entry.

Definition at line 370 of file nat64_db.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void nat64_db_st_walk ( nat64_db_t db,
snat_protocol_t  proto,
nat64_db_st_walk_fn_t  fn,
void *  ctx 
)

Walk NAT64 session table.

Parameters
dbNAT64 DB.
protoSession table protocol (TCP/UDP/ICMP).
fnThe function to invoke on each entry visited.
ctxA context passed in the visit function.

Definition at line 267 of file nat64_db.c.

+ Here is the caller graph for this function: