Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
ip: Replace Sematics for Interface IP addresses
[vpp.git]
/
src
/
plugins
/
gbp
/
gbp_vxlan.h
diff --git
a/src/plugins/gbp/gbp_vxlan.h
b/src/plugins/gbp/gbp_vxlan.h
index
7aa22e3
..
6e01dc1
100644
(file)
--- a/
src/plugins/gbp/gbp_vxlan.h
+++ b/
src/plugins/gbp/gbp_vxlan.h
@@
-17,6
+17,7
@@
#define __GBP_VXLAN_H__
#include <vnet/fib/fib_types.h>
#define __GBP_VXLAN_H__
#include <vnet/fib/fib_types.h>
+#include <plugins/gbp/gbp_itf.h>
#define forecah_gbp_vxlan_tunnel_layer \
_(L2, "l2") \
#define forecah_gbp_vxlan_tunnel_layer \
_(L2, "l2") \
@@
-51,10
+52,6
@@
typedef struct gbp_vxlan_tunnel_t_
{
struct
{
{
struct
{
- /**
- * BD index (if L2)
- */
- u32 gt_bd_index;
/**
* Reference to the GPB-BD
*/
/**
* Reference to the GPB-BD
*/
@@
-62,10
+59,6
@@
typedef struct gbp_vxlan_tunnel_t_
};
struct
{
};
struct
{
- /**
- * FIB inidices (if L3)
- */
- u32 gt_fib_index[FIB_PROTOCOL_IP_MAX];
/**
* References to the GBP-RD
*/
/**
* References to the GBP-RD
*/
@@
-76,12
+69,17
@@
typedef struct gbp_vxlan_tunnel_t_
/**
* gbp-itf config for this interface
*/
/**
* gbp-itf config for this interface
*/
-
index
_t gt_itf;
+
gbp_itf_hdl
_t gt_itf;
/**
* list of child vxlan-gbp tunnels built from this template
*/
index_t *gt_tuns;
/**
* list of child vxlan-gbp tunnels built from this template
*/
index_t *gt_tuns;
+
+ /**
+ * The source address to use for child tunnels
+ */
+ ip46_address_t gt_src;
} gbp_vxlan_tunnel_t;
/**
} gbp_vxlan_tunnel_t;
/**
@@
-103,18
+101,21
@@
typedef enum gbp_vxlan_tunnel_type_t_
} gbp_vxlan_tunnel_type_t;
extern int gbp_vxlan_tunnel_add (u32 vni, gbp_vxlan_tunnel_layer_t layer,
} gbp_vxlan_tunnel_type_t;
extern int gbp_vxlan_tunnel_add (u32 vni, gbp_vxlan_tunnel_layer_t layer,
- u32 bd_rd_id, u32 * sw_if_indexp);
+ u32 bd_rd_id,
+ const ip4_address_t * src,
+ u32 * sw_if_indexp);
extern int gbp_vxlan_tunnel_del (u32 vni);
extern gbp_vxlan_tunnel_type_t gbp_vxlan_tunnel_get_type (u32 sw_if_index);
extern int gbp_vxlan_tunnel_del (u32 vni);
extern gbp_vxlan_tunnel_type_t gbp_vxlan_tunnel_get_type (u32 sw_if_index);
-extern u32 gbp_vxlan_tunnel_clone_and_lock (u32 parent_tunnel,
- const ip46_address_t * src,
- const ip46_address_t * dst);
+extern gbp_itf_hdl_t gbp_vxlan_tunnel_clone_and_lock (u32 parent_tunnel,
+ const ip46_address_t *
+ src,
+ const ip46_address_t *
+ dst);
-extern void vxlan_gbp_tunnel_lock (u32 sw_if_index);
-extern void vxlan_gbp_tunnel_unlock (u32 sw_if_index);
extern u32 vxlan_gbp_tunnel_get_parent (u32 sw_if_index);
extern u32 vxlan_gbp_tunnel_get_parent (u32 sw_if_index);
+extern gbp_itf_hdl_t vxlan_gbp_tunnel_lock_itf (u32 sw_if_index);
typedef walk_rc_t (*gbp_vxlan_cb_t) (gbp_vxlan_tunnel_t * gt, void *ctx);
extern void gbp_vxlan_walk (gbp_vxlan_cb_t cb, void *ctx);
typedef walk_rc_t (*gbp_vxlan_cb_t) (gbp_vxlan_tunnel_t * gt, void *ctx);
extern void gbp_vxlan_walk (gbp_vxlan_cb_t cb, void *ctx);
@@
-122,6
+123,7
@@
extern void gbp_vxlan_walk (gbp_vxlan_cb_t cb, void *ctx);
extern u8 *format_gbp_vxlan_tunnel (u8 * s, va_list * args);
extern u8 *format_gbp_vxlan_tunnel_layer (u8 * s, va_list * args);
extern u8 *format_gbp_vxlan_tunnel (u8 * s, va_list * args);
extern u8 *format_gbp_vxlan_tunnel_layer (u8 * s, va_list * args);
+extern gbp_vxlan_tunnel_t *gbp_vxlan_tunnel_get (index_t gti);
#endif
/*
#endif
/*