FD.io VPP  v16.09
Vector Packet Processing
lisp_types.h File Reference
+ Include dependency graph for lisp_types.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  fid_address_t
 
struct  source_dest_t
 
struct  vni_t
 
struct  lcaf_t
 
struct  locator_t
 
struct  locator_set_t
 
struct  mapping_t
 
struct  locator_pair
 

Macros

#define ip_addr_addr(_a)   (_a)->ip
 
#define ip_addr_v4(_a)   (_a)->ip.v4
 
#define ip_addr_v6(_a)   (_a)->ip.v6
 
#define ip_addr_version(_a)   (_a)->version
 
#define ip_prefix_addr(_a)   (_a)->addr
 
#define ip_prefix_version(_a)   ip_addr_version(&ip_prefix_addr(_a))
 
#define ip_prefix_len(_a)   (_a)->len
 
#define ip_prefix_v4(_a)   ip_addr_v4(&ip_prefix_addr(_a))
 
#define ip_prefix_v6(_a)   ip_addr_v6(&ip_prefix_addr(_a))
 
#define fid_addr_ippref(_a)   (_a)->ippref
 
#define fid_addr_mac(_a)   (_a)->mac
 
#define fid_addr_type(_a)   (_a)->type
 
#define sd_dst(_a)   (_a)->dst
 
#define sd_src(_a)   (_a)->src
 
#define sd_src_ippref(_a)   fid_addr_ippref(&sd_src(_a))
 
#define sd_dst_ippref(_a)   fid_addr_ippref(&sd_dst(_a))
 
#define sd_src_mac(_a)   fid_addr_mac(&sd_src(_a))
 
#define sd_dst_mac(_a)   fid_addr_mac(&sd_dst(_a))
 
#define vni_vni(_a)   (_a)->vni
 
#define vni_mask_len(_a)   (_a)->vni_mask_len
 
#define vni_gid(_a)   (_a)->gid_addr
 
#define lcaf_type(_a)   (_a)->type
 
#define lcaf_vni(_a)   vni_vni(& (_a)->uni)
 
#define lcaf_vni_len(_a)   vni_mask_len(& (_a)->uni)
 
#define gid_address_type(_a)   (_a)->type
 
#define gid_address_ippref(_a)   (_a)->ippref
 
#define gid_address_ippref_len(_a)   (_a)->ippref.len
 
#define gid_address_ip(_a)   ip_prefix_addr(&gid_address_ippref(_a))
 
#define gid_address_ip_version(_a)   ip_addr_version(&gid_address_ip(_a))
 
#define gid_address_lcaf(_a)   (_a)->lcaf
 
#define gid_address_mac(_a)   (_a)->mac
 
#define gid_address_vni(_a)   (_a)->vni
 
#define gid_address_vni_mask(_a)   (_a)->vni_mask
 
#define gid_address_sd_dst_ippref(_a)   sd_dst_ippref(&(_a)->sd)
 
#define gid_address_sd_src_ippref(_a)   sd_src_ippref(&(_a)->sd)
 
#define gid_address_sd_dst_mac(_a)   sd_dst_mac(&(_a)->sd)
 
#define gid_address_sd_src_mac(_a)   sd_src_mac(&(_a)->sd)
 
#define gid_address_sd(_a)   (_a)->sd
 
#define gid_address_sd_src(_a)   sd_src(&gid_address_sd(_a))
 
#define gid_address_sd_dst(_a)   sd_dst(&gid_address_sd(_a))
 
#define foreach_gid_address_type_fcns
 

Typedefs

typedef fid_address_t dp_address_t
 
typedef struct _gid_address_t gid_address_t
 
typedef struct locator_pair locator_pair_t
 

Enumerations

enum  ip_address_type_t { IP4, IP6 }
 
enum  gid_address_type_t {
  GID_ADDR_IP_PREFIX, GID_ADDR_LCAF, GID_ADDR_MAC, GID_ADDR_SRC_DST,
  GID_ADDR_NO_ADDRESS, GID_ADDR_TYPES
}
 
enum  lcaf_type_t {
  LCAF_NULL_BODY = 0, LCAF_AFI_LIST_TYPE, LCAF_INSTANCE_ID, LCAF_SOURCE_DEST = 12,
  LCAF_TYPES
}
 
enum  fid_addr_type_t { FID_ADDR_IP_PREF, FID_ADDR_MAC }
 
enum  lisp_afi_e {
  LISP_AFI_NO_ADDR, LISP_AFI_IP, LISP_AFI_IP6, LISP_AFI_LCAF = 16387,
  LISP_AFI_MAC = 16389
}
 

Functions

typedef CLIB_PACKED (struct ip_address{union{ip4_address_t v4;ip6_address_t v6;}ip;u8 version;}) ip_address_t
 
int ip_address_cmp (ip_address_t *ip1, ip_address_t *ip2)
 
void ip_address_copy (ip_address_t *dst, ip_address_t *src)
 
void ip_address_copy_addr (void *dst, ip_address_t *src)
 
void ip_address_set (ip_address_t *dst, void *src, u8 version)
 
typedef CLIB_PACKED (struct ip_prefix{ip_address_t addr;u8 len;}) ip_prefix_t
 
void ip_prefix_normalize (ip_prefix_t *a)
 
u8format_ip_address (u8 *s, va_list *args)
 
uword unformat_ip_address (unformat_input_t *input, va_list *args)
 
u8format_ip_prefix (u8 *s, va_list *args)
 
uword unformat_ip_prefix (unformat_input_t *input, va_list *args)
 
u8format_mac_address (u8 *s, va_list *args)
 
uword unformat_mac_address (unformat_input_t *input, va_list *args)
 
u16 ip4_address_size_to_put ()
 
u16 ip6_address_size_to_put ()
 
u32 ip4_address_put (u8 *b, ip4_address_t *a)
 
u32 ip6_address_put (u8 *b, ip6_address_t *a)
 
u16 ip_address_size_to_write (ip_address_t *a)
 
u16 ip_address_iana_afi (ip_address_t *a)
 
u8 ip_address_max_len (u8 ver)
 
u32 ip_address_put (u8 *b, ip_address_t *a)
 
u8format_gid_address (u8 *s, va_list *args)
 
uword unformat_gid_address (unformat_input_t *input, va_list *args)
 
int gid_address_cmp (gid_address_t *a1, gid_address_t *a2)
 
void gid_address_free (gid_address_t *a)
 
u16 gid_address_size_to_put (gid_address_t *a)
 
u16 gid_address_put (u8 *b, gid_address_t *gid)
 
u8 gid_address_len (gid_address_t *a)
 
void * gid_address_cast (gid_address_t *gid, gid_address_type_t type)
 
void gid_address_copy (gid_address_t *dst, gid_address_t *src)
 
u32 gid_address_parse (u8 *offset, gid_address_t *a)
 
void gid_address_ip_set (gid_address_t *dst, void *src, u8 version)
 
static foreach_gid_address_type_fcns u64 mac_to_u64 (u8 *m)
 
u32 locator_parse (void *ptr, locator_t *loc)
 
void locator_copy (locator_t *dst, locator_t *src)
 
u32 locator_cmp (locator_t *l1, locator_t *l2)
 
void locator_free (locator_t *l)
 
uword unformat_negative_mapping_action (unformat_input_t *input, va_list *args)
 

Macro Definition Documentation

#define fid_addr_ippref (   _a)    (_a)->ippref

Definition at line 107 of file lisp_types.h.

#define fid_addr_mac (   _a)    (_a)->mac

Definition at line 108 of file lisp_types.h.

#define fid_addr_type (   _a)    (_a)->type

Definition at line 109 of file lisp_types.h.

#define foreach_gid_address_type_fcns
Value:
_(ip_prefix) \
_(lcaf) \
_(mac) \
_(sd)

Definition at line 223 of file lisp_types.h.

#define gid_address_ip (   _a)    ip_prefix_addr(&gid_address_ippref(_a))

Definition at line 208 of file lisp_types.h.

#define gid_address_ip_version (   _a)    ip_addr_version(&gid_address_ip(_a))

Definition at line 209 of file lisp_types.h.

#define gid_address_ippref (   _a)    (_a)->ippref

Definition at line 206 of file lisp_types.h.

#define gid_address_ippref_len (   _a)    (_a)->ippref.len

Definition at line 207 of file lisp_types.h.

#define gid_address_lcaf (   _a)    (_a)->lcaf

Definition at line 210 of file lisp_types.h.

#define gid_address_mac (   _a)    (_a)->mac

Definition at line 211 of file lisp_types.h.

#define gid_address_sd (   _a)    (_a)->sd

Definition at line 218 of file lisp_types.h.

#define gid_address_sd_dst (   _a)    sd_dst(&gid_address_sd(_a))

Definition at line 220 of file lisp_types.h.

#define gid_address_sd_dst_ippref (   _a)    sd_dst_ippref(&(_a)->sd)

Definition at line 214 of file lisp_types.h.

#define gid_address_sd_dst_mac (   _a)    sd_dst_mac(&(_a)->sd)

Definition at line 216 of file lisp_types.h.

#define gid_address_sd_src (   _a)    sd_src(&gid_address_sd(_a))

Definition at line 219 of file lisp_types.h.

#define gid_address_sd_src_ippref (   _a)    sd_src_ippref(&(_a)->sd)

Definition at line 215 of file lisp_types.h.

#define gid_address_sd_src_mac (   _a)    sd_src_mac(&(_a)->sd)

Definition at line 217 of file lisp_types.h.

#define gid_address_type (   _a)    (_a)->type

Definition at line 205 of file lisp_types.h.

#define gid_address_vni (   _a)    (_a)->vni

Definition at line 212 of file lisp_types.h.

#define gid_address_vni_mask (   _a)    (_a)->vni_mask

Definition at line 213 of file lisp_types.h.

#define ip_addr_addr (   _a)    (_a)->ip

Definition at line 40 of file lisp_types.h.

#define ip_addr_v4 (   _a)    (_a)->ip.v4

Definition at line 41 of file lisp_types.h.

#define ip_addr_v6 (   _a)    (_a)->ip.v6

Definition at line 42 of file lisp_types.h.

#define ip_addr_version (   _a)    (_a)->version

Definition at line 43 of file lisp_types.h.

#define ip_prefix_addr (   _a)    (_a)->addr

Definition at line 58 of file lisp_types.h.

#define ip_prefix_len (   _a)    (_a)->len

Definition at line 60 of file lisp_types.h.

#define ip_prefix_v4 (   _a)    ip_addr_v4(&ip_prefix_addr(_a))

Definition at line 61 of file lisp_types.h.

#define ip_prefix_v6 (   _a)    ip_addr_v6(&ip_prefix_addr(_a))

Definition at line 62 of file lisp_types.h.

#define ip_prefix_version (   _a)    ip_addr_version(&ip_prefix_addr(_a))

Definition at line 59 of file lisp_types.h.

#define lcaf_type (   _a)    (_a)->type

Definition at line 146 of file lisp_types.h.

#define lcaf_vni (   _a)    vni_vni(& (_a)->uni)

Definition at line 147 of file lisp_types.h.

#define lcaf_vni_len (   _a)    vni_mask_len(& (_a)->uni)

Definition at line 148 of file lisp_types.h.

#define sd_dst (   _a)    (_a)->dst

Definition at line 117 of file lisp_types.h.

#define sd_dst_ippref (   _a)    fid_addr_ippref(&sd_dst(_a))

Definition at line 120 of file lisp_types.h.

#define sd_dst_mac (   _a)    fid_addr_mac(&sd_dst(_a))

Definition at line 122 of file lisp_types.h.

#define sd_src (   _a)    (_a)->src

Definition at line 118 of file lisp_types.h.

#define sd_src_ippref (   _a)    fid_addr_ippref(&sd_src(_a))

Definition at line 119 of file lisp_types.h.

#define sd_src_mac (   _a)    fid_addr_mac(&sd_src(_a))

Definition at line 121 of file lisp_types.h.

#define vni_gid (   _a)    (_a)->gid_addr

Definition at line 133 of file lisp_types.h.

#define vni_mask_len (   _a)    (_a)->vni_mask_len

Definition at line 132 of file lisp_types.h.

#define vni_vni (   _a)    (_a)->vni

Definition at line 131 of file lisp_types.h.

Typedef Documentation

Definition at line 105 of file lisp_types.h.

typedef struct _gid_address_t gid_address_t
typedef struct locator_pair locator_pair_t

Enumeration Type Documentation

Enumerator
FID_ADDR_IP_PREF 
FID_ADDR_MAC 

Definition at line 88 of file lisp_types.h.

Enumerator
GID_ADDR_IP_PREFIX 
GID_ADDR_LCAF 
GID_ADDR_MAC 
GID_ADDR_SRC_DST 
GID_ADDR_NO_ADDRESS 
GID_ADDR_TYPES 

Definition at line 66 of file lisp_types.h.

Enumerator
IP4 
IP6 

Definition at line 22 of file lisp_types.h.

Enumerator
LCAF_NULL_BODY 
LCAF_AFI_LIST_TYPE 
LCAF_INSTANCE_ID 
LCAF_SOURCE_DEST 
LCAF_TYPES 

Definition at line 78 of file lisp_types.h.

enum lisp_afi_e
Enumerator
LISP_AFI_NO_ADDR 
LISP_AFI_IP 
LISP_AFI_IP6 
LISP_AFI_LCAF 
LISP_AFI_MAC 

Definition at line 183 of file lisp_types.h.

Function Documentation

typedef CLIB_PACKED ( struct ip_address{union{ip4_address_t v4;ip6_address_t v6;}ip;u8 version;}  )
typedef CLIB_PACKED ( struct ip_prefix{ip_address_t addr;u8 len;}  )
u8* format_gid_address ( u8 s,
va_list *  args 
)

Definition at line 224 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_ip_address ( u8 s,
va_list *  args 
)

Definition at line 127 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_ip_prefix ( u8 s,
va_list *  args 
)

Definition at line 160 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_mac_address ( u8 s,
va_list *  args 
)

Definition at line 196 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void* gid_address_cast ( gid_address_t gid,
gid_address_type_t  type 
)

Definition at line 1182 of file lisp_types.c.

int gid_address_cmp ( gid_address_t a1,
gid_address_t a2 
)

Definition at line 1319 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gid_address_copy ( gid_address_t dst,
gid_address_t src 
)

Definition at line 1188 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gid_address_free ( gid_address_t a)

Definition at line 645 of file lisp_types.c.

+ Here is the caller graph for this function:

void gid_address_ip_set ( gid_address_t dst,
void *  src,
u8  version 
)

Definition at line 1254 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 gid_address_len ( gid_address_t a)

Definition at line 1143 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 gid_address_parse ( u8 offset,
gid_address_t a 
)

Definition at line 1208 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u16 gid_address_put ( u8 b,
gid_address_t gid 
)

Definition at line 1157 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u16 gid_address_size_to_put ( gid_address_t a)

Definition at line 1173 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 ip4_address_put ( u8 b,
ip4_address_t a 
)

Definition at line 442 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u16 ip4_address_size_to_put ( )

Definition at line 428 of file lisp_types.c.

+ Here is the caller graph for this function:

u32 ip6_address_put ( u8 b,
ip6_address_t a 
)

Definition at line 451 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u16 ip6_address_size_to_put ( )

Definition at line 435 of file lisp_types.c.

+ Here is the caller graph for this function:

int ip_address_cmp ( ip_address_t *  ip1,
ip_address_t *  ip2 
)

Definition at line 656 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip_address_copy ( ip_address_t *  dst,
ip_address_t *  src 
)

Definition at line 673 of file lisp_types.c.

+ Here is the caller graph for this function:

void ip_address_copy_addr ( void *  dst,
ip_address_t *  src 
)

Definition at line 679 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u16 ip_address_iana_afi ( ip_address_t *  a)

Definition at line 416 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 ip_address_max_len ( u8  ver)

Definition at line 422 of file lisp_types.c.

+ Here is the caller graph for this function:

u32 ip_address_put ( u8 b,
ip_address_t *  a 
)

Definition at line 460 of file lisp_types.c.

+ Here is the call graph for this function:

void ip_address_set ( ip_address_t *  dst,
void *  src,
u8  version 
)

Definition at line 685 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u16 ip_address_size_to_write ( ip_address_t *  a)

Definition at line 410 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ip_prefix_normalize ( ip_prefix_t *  a)

Definition at line 745 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 locator_cmp ( locator_t l1,
locator_t l2 
)

Definition at line 1400 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void locator_copy ( locator_t dst,
locator_t src 
)

Definition at line 1391 of file lisp_types.c.

+ Here is the call graph for this function:

void locator_free ( locator_t l)

Definition at line 1418 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 locator_parse ( void *  ptr,
locator_t loc 
)

Definition at line 1366 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static foreach_gid_address_type_fcns u64 mac_to_u64 ( u8 m)
inlinestatic

Definition at line 242 of file lisp_types.h.

+ Here is the caller graph for this function:

uword unformat_gid_address ( unformat_input_t input,
va_list *  args 
)

Definition at line 271 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_ip_address ( unformat_input_t input,
va_list *  args 
)

Definition at line 147 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_ip_prefix ( unformat_input_t input,
va_list *  args 
)

Definition at line 168 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_mac_address ( unformat_input_t input,
va_list *  args 
)

Definition at line 188 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_negative_mapping_action ( unformat_input_t input,
va_list *  args 
)

Definition at line 306 of file lisp_types.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: