FD.io VPP  v16.12-rc0-308-g931be3a
Vector Packet Processing
ip6_hop_by_hop.h File Reference
+ Include dependency graph for ip6_hop_by_hop.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  flow_data_t
 
struct  ip6_hop_by_hop_ioam_main_t
 

Macros

#define MAX_IP6_HBH_OPTION   256
 
#define IOAM_DECAP_BIT   0x80000000
 
#define IOAM_DEAP_ENABLED(opaque_data)   (opaque_data & IOAM_DECAP_BIT)
 
#define IOAM_SET_DECAP(opaque_data)   (opaque_data |= IOAM_DECAP_BIT)
 
#define IOAM_MASK_DECAP_BIT(x)   (x & ~IOAM_DECAP_BIT)
 
#define IOAM_HBYH_ADD   0
 
#define IOAM_HBYH_MOD   1
 
#define IOAM_HBYH_POP   2
 
#define TSP_SECONDS   0
 
#define TSP_MILLISECONDS   1
 
#define TSP_MICROSECONDS   2
 
#define TSP_NANOSECONDS   3
 

Functions

u8format_path_map (u8 *s, va_list *args)
 
clib_error_tip6_ioam_enable (int has_trace_option, int has_pot_option, int has_seqno_option, int has_analyse_option)
 
int ip6_ioam_set_destination (ip6_address_t *addr, u32 mask_width, u32 vrf_id, int is_add, int is_pop, int is_none)
 
clib_error_tclear_ioam_rewrite_fn (void)
 
static u8 is_zero_ip4_address (ip4_address_t *a)
 
static void copy_ip6_address (ip6_address_t *dst, ip6_address_t *src)
 
static void set_zero_ip6_address (ip6_address_t *a)
 
static u8 cmp_ip6_address (ip6_address_t *a1, ip6_address_t *a2)
 
static u8 is_zero_ip6_address (ip6_address_t *a)
 
int ip6_hbh_add_register_option (u8 option, u8 size, int rewrite_options(u8 *rewrite_string, u8 *size))
 
int ip6_hbh_add_unregister_option (u8 option)
 
int ip6_hbh_pop_register_option (u8 option, int options(vlib_buffer_t *b, ip6_header_t *ip, ip6_hop_by_hop_option_t *opt))
 
int ip6_hbh_pop_unregister_option (u8 option)
 
int ip6_hbh_get_sizeof_register_option (u8 option, int get_sizeof_hdr_options(u32 *rewrite_size))
 
int ip6_ioam_set_rewrite (u8 **rwp, int has_trace_option, int has_pot_option, int has_seq_no)
 
int ip6_hbh_config_handler_register (u8 option, int config_handler(void *data, u8 disable))
 
int ip6_hbh_config_handler_unregister (u8 option)
 
int ip6_hbh_flow_handler_register (u8 option, u32 ioam_flow_handler(u32 flow_ctx, u8 add))
 
int ip6_hbh_flow_handler_unregister (u8 option)
 
u8get_flow_name_from_flow_ctx (u32 flow_ctx)
 
static flow_data_tget_flow (u32 index)
 
static u32 get_flow_data_from_flow_ctx (u32 flow_ctx, u8 option)
 
static u8 is_seqno_enabled (void)
 

Variables

ip6_hop_by_hop_ioam_main_t ip6_hop_by_hop_ioam_main
 

Macro Definition Documentation

#define IOAM_DEAP_ENABLED (   opaque_data)    (opaque_data & IOAM_DECAP_BIT)

Definition at line 27 of file ip6_hop_by_hop.h.

#define IOAM_DECAP_BIT   0x80000000

Definition at line 25 of file ip6_hop_by_hop.h.

#define IOAM_HBYH_ADD   0

Definition at line 51 of file ip6_hop_by_hop.h.

#define IOAM_HBYH_MOD   1

Definition at line 52 of file ip6_hop_by_hop.h.

#define IOAM_HBYH_POP   2

Definition at line 53 of file ip6_hop_by_hop.h.

#define IOAM_MASK_DECAP_BIT (   x)    (x & ~IOAM_DECAP_BIT)

Definition at line 32 of file ip6_hop_by_hop.h.

#define IOAM_SET_DECAP (   opaque_data)    (opaque_data |= IOAM_DECAP_BIT)

Definition at line 29 of file ip6_hop_by_hop.h.

#define MAX_IP6_HBH_OPTION   256

Definition at line 22 of file ip6_hop_by_hop.h.

#define TSP_MICROSECONDS   2

Definition at line 74 of file ip6_hop_by_hop.h.

#define TSP_MILLISECONDS   1

Definition at line 73 of file ip6_hop_by_hop.h.

#define TSP_NANOSECONDS   3

Definition at line 75 of file ip6_hop_by_hop.h.

#define TSP_SECONDS   0

Definition at line 72 of file ip6_hop_by_hop.h.

Function Documentation

clib_error_t* clear_ioam_rewrite_fn ( void  )

Definition at line 934 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

static u8 cmp_ip6_address ( ip6_address_t a1,
ip6_address_t a2 
)
inlinestatic

Definition at line 123 of file ip6_hop_by_hop.h.

static void copy_ip6_address ( ip6_address_t dst,
ip6_address_t src 
)
inlinestatic

Definition at line 111 of file ip6_hop_by_hop.h.

u8* format_path_map ( u8 s,
va_list *  args 
)
static flow_data_t* get_flow ( u32  index)
inlinestatic

Definition at line 163 of file ip6_hop_by_hop.h.

static u32 get_flow_data_from_flow_ctx ( u32  flow_ctx,
u8  option 
)
inlinestatic

Definition at line 175 of file ip6_hop_by_hop.h.

+ Here is the caller graph for this function:

u8* get_flow_name_from_flow_ctx ( u32  flow_ctx)

Definition at line 108 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_add_register_option ( u8  option,
u8  size,
int   rewrite_optionsu8 *rewrite_string, u8 *size 
)

+ Here is the caller graph for this function:

int ip6_hbh_add_unregister_option ( u8  option)

Definition at line 145 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_config_handler_register ( u8  option,
int   config_handlervoid *data, u8 disable 
)

Definition at line 162 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_config_handler_unregister ( u8  option)

Definition at line 179 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_flow_handler_register ( u8  option,
u32   ioam_flow_handleru32 flow_ctx, u8 add 
)

Definition at line 195 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_flow_handler_unregister ( u8  option)

Definition at line 212 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_get_sizeof_register_option ( u8  option,
int   get_sizeof_hdr_optionsu32 *rewrite_size 
)

+ Here is the caller graph for this function:

int ip6_hbh_pop_register_option ( u8  option,
int   optionsvlib_buffer_t *b, ip6_header_t *ip, ip6_hop_by_hop_option_t *opt 
)

Definition at line 503 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

int ip6_hbh_pop_unregister_option ( u8  option)

Definition at line 522 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

clib_error_t* ip6_ioam_enable ( int  has_trace_option,
int  has_pot_option,
int  has_seqno_option,
int  has_analyse_option 
)

Definition at line 986 of file ip6_hop_by_hop.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ip6_ioam_set_destination ( ip6_address_t addr,
u32  mask_width,
u32  vrf_id,
int  is_add,
int  is_pop,
int  is_none 
)
int ip6_ioam_set_rewrite ( u8 **  rwp,
int  has_trace_option,
int  has_pot_option,
int  has_seq_no 
)

Definition at line 848 of file ip6_hop_by_hop.c.

+ Here is the caller graph for this function:

static u8 is_seqno_enabled ( void  )
inlinestatic

Definition at line 187 of file ip6_hop_by_hop.h.

static u8 is_zero_ip4_address ( ip4_address_t a)
inlinestatic

Definition at line 106 of file ip6_hop_by_hop.h.

static u8 is_zero_ip6_address ( ip6_address_t a)
inlinestatic

Definition at line 127 of file ip6_hop_by_hop.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void set_zero_ip6_address ( ip6_address_t a)
inlinestatic

Definition at line 117 of file ip6_hop_by_hop.h.

Variable Documentation

ip6_hop_by_hop_ioam_main_t ip6_hop_by_hop_ioam_main

Definition at line 44 of file ip6_hop_by_hop.c.