FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
gbp_vxlan.h File Reference
+ Include dependency graph for gbp_vxlan.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gbp_vxlan_tunnel_t_
 GBP VXLAN (template) tunnel. More...
 

Macros

#define foreach_gbp_vxlan_tunnel_layer
 

Typedefs

typedef enum gbp_vxlan_tunnel_layer_t_ gbp_vxlan_tunnel_layer_t
 
typedef struct gbp_vxlan_tunnel_t_ gbp_vxlan_tunnel_t
 GBP VXLAN (template) tunnel. More...
 
typedef enum gbp_vxlan_tunnel_type_t_ gbp_vxlan_tunnel_type_t
 The different types of interfaces that endpoints are learned on. More...
 
typedef walk_rc_t(* gbp_vxlan_cb_t) (gbp_vxlan_tunnel_t *gt, void *ctx)
 

Enumerations

enum  gbp_vxlan_tunnel_layer_t_ { foreach_gbp_vxlan_tunnel_layer }
 
enum  gbp_vxlan_tunnel_type_t_ { GBP_VXLAN_TEMPLATE_TUNNEL, VXLAN_GBP_TUNNEL }
 The different types of interfaces that endpoints are learned on. More...
 

Functions

int gbp_vxlan_tunnel_add (u32 vni, gbp_vxlan_tunnel_layer_t layer, u32 bd_rd_id, const ip4_address_t *src, u32 *sw_if_indexp)
 
int gbp_vxlan_tunnel_del (u32 vni)
 
gbp_vxlan_tunnel_type_t gbp_vxlan_tunnel_get_type (u32 sw_if_index)
 
gbp_itf_hdl_t gbp_vxlan_tunnel_clone_and_lock (u32 parent_tunnel, const ip46_address_t *src, const ip46_address_t *dst)
 
u32 vxlan_gbp_tunnel_get_parent (u32 sw_if_index)
 
gbp_itf_hdl_t vxlan_gbp_tunnel_lock_itf (u32 sw_if_index)
 
void gbp_vxlan_walk (gbp_vxlan_cb_t cb, void *ctx)
 
u8format_gbp_vxlan_tunnel (u8 *s, va_list *args)
 
u8format_gbp_vxlan_tunnel_layer (u8 *s, va_list *args)
 
gbp_vxlan_tunnel_tgbp_vxlan_tunnel_get (index_t gti)
 

Macro Definition Documentation

◆ foreach_gbp_vxlan_tunnel_layer

#define foreach_gbp_vxlan_tunnel_layer
Value:
_ (L2, "l2") \
_ (L3, "l3")

Definition at line 22 of file gbp_vxlan.h.

Typedef Documentation

◆ gbp_vxlan_cb_t

typedef walk_rc_t(* gbp_vxlan_cb_t) (gbp_vxlan_tunnel_t *gt, void *ctx)

Definition at line 120 of file gbp_vxlan.h.

◆ gbp_vxlan_tunnel_layer_t

◆ gbp_vxlan_tunnel_t

GBP VXLAN (template) tunnel.

A template tunnel has only a VNI, it does not have src,dst address. As such it cannot be used to send traffic. It is used in the RX path to RX vxlan-gbp packets that do not match an existing tunnel;

◆ gbp_vxlan_tunnel_type_t

The different types of interfaces that endpoints are learned on.

Enumeration Type Documentation

◆ gbp_vxlan_tunnel_layer_t_

Enumerator
foreach_gbp_vxlan_tunnel_layer 

Definition at line 26 of file gbp_vxlan.h.

◆ gbp_vxlan_tunnel_type_t_

The different types of interfaces that endpoints are learned on.

Enumerator
GBP_VXLAN_TEMPLATE_TUNNEL 

This is the object type defined above.

A template representation of a vxlan-gbp tunnel. from this tunnel type, real vxlan-gbp tunnels are created (by cloning the VNI)

VXLAN_GBP_TUNNEL 

A real VXLAN-GBP tunnel (from vnet/vxlan-gbp/...)

Definition at line 88 of file gbp_vxlan.h.

Function Documentation

◆ format_gbp_vxlan_tunnel()

u8* format_gbp_vxlan_tunnel ( u8 s,
va_list *  args 
)

Definition at line 344 of file gbp_vxlan.c.

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

◆ format_gbp_vxlan_tunnel_layer()

u8* format_gbp_vxlan_tunnel_layer ( u8 s,
va_list *  args 
)

Definition at line 335 of file gbp_vxlan.c.

+ Here is the caller graph for this function:

◆ gbp_vxlan_tunnel_add()

int gbp_vxlan_tunnel_add ( u32  vni,
gbp_vxlan_tunnel_layer_t  layer,
u32  bd_rd_id,
const ip4_address_t src,
u32 sw_if_indexp 
)

Definition at line 439 of file gbp_vxlan.c.

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

◆ gbp_vxlan_tunnel_clone_and_lock()

gbp_itf_hdl_t gbp_vxlan_tunnel_clone_and_lock ( u32  parent_tunnel,
const ip46_address_t *  src,
const ip46_address_t *  dst 
)

Definition at line 271 of file gbp_vxlan.c.

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

◆ gbp_vxlan_tunnel_del()

int gbp_vxlan_tunnel_del ( u32  vni)

Definition at line 550 of file gbp_vxlan.c.

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

◆ gbp_vxlan_tunnel_get()

gbp_vxlan_tunnel_t* gbp_vxlan_tunnel_get ( index_t  gti)

Definition at line 84 of file gbp_vxlan.c.

+ Here is the caller graph for this function:

◆ gbp_vxlan_tunnel_get_type()

gbp_vxlan_tunnel_type_t gbp_vxlan_tunnel_get_type ( u32  sw_if_index)

Definition at line 253 of file gbp_vxlan.c.

+ Here is the caller graph for this function:

◆ gbp_vxlan_walk()

void gbp_vxlan_walk ( gbp_vxlan_cb_t  cb,
void *  ctx 
)

Definition at line 304 of file gbp_vxlan.c.

+ Here is the caller graph for this function:

◆ vxlan_gbp_tunnel_get_parent()

u32 vxlan_gbp_tunnel_get_parent ( u32  sw_if_index)

Definition at line 222 of file gbp_vxlan.c.

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

◆ vxlan_gbp_tunnel_lock_itf()

gbp_itf_hdl_t vxlan_gbp_tunnel_lock_itf ( u32  sw_if_index)

Definition at line 237 of file gbp_vxlan.c.

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