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_endpoint.h
diff --git
a/src/plugins/gbp/gbp_endpoint.h
b/src/plugins/gbp/gbp_endpoint.h
index
e399ff4
..
3155e7b
100644
(file)
--- a/
src/plugins/gbp/gbp_endpoint.h
+++ b/
src/plugins/gbp/gbp_endpoint.h
@@
-17,6
+17,7
@@
#define __GBP_ENDPOINT_H__
#include <plugins/gbp/gbp_types.h>
#define __GBP_ENDPOINT_H__
#include <plugins/gbp/gbp_types.h>
+#include <plugins/gbp/gbp_itf.h>
#include <vnet/ip/ip.h>
#include <vnet/ethernet/mac_address.h>
#include <vnet/ip/ip.h>
#include <vnet/ethernet/mac_address.h>
@@
-58,11
+59,13
@@
extern u8 *format_gbp_endpoint_flags (u8 * s, va_list * args);
/**
* Sources of Endpoints in priority order. The best (lowest value) source
/**
* Sources of Endpoints in priority order. The best (lowest value) source
- * provides the forwarding information
+ * provides the forwarding information.
+ * Data-plane takes preference because the CP data is not always complete,
+ * it may not have the sclass.
*/
#define foreach_gbp_endpoint_src \
*/
#define foreach_gbp_endpoint_src \
- _(CP, "control-plane") \
_(DP, "data-plane") \
_(DP, "data-plane") \
+ _(CP, "control-plane") \
_(RR, "recursive-resolution")
typedef enum gbp_endpoint_src_t_
_(RR, "recursive-resolution")
typedef enum gbp_endpoint_src_t_
@@
-120,7
+123,7
@@
typedef struct gbp_endpoint_loc_t_
/**
* The interface on which the EP is connected
*/
/**
* The interface on which the EP is connected
*/
-
u32 gel_sw_if_index
;
+
gbp_itf_hdl_t gel_itf
;
/**
* Endpoint flags
/**
* Endpoint flags
@@
-156,7
+159,7
@@
typedef struct gbp_endpoint_fwd_t_
/**
* The interface on which the EP is connected
*/
/**
* The interface on which the EP is connected
*/
-
index
_t gef_itf;
+
gbp_itf_hdl
_t gef_itf;
/**
* The L3 adj, if created
/**
* The L3 adj, if created
@@
-164,9
+167,14
@@
typedef struct gbp_endpoint_fwd_t_
index_t *gef_adjs;
/**
index_t *gef_adjs;
/**
- * Endpoint Group's ID. cached for fast DP access.
+ * Endpoint Group's sclass. cached for fast DP access.
+ */
+ sclass_t gef_sclass;
+
+ /**
+ * FIB index the EP is in
*/
*/
-
epg_id_t gef_epg_id
;
+
u32 gef_fib_index
;
gbp_endpoint_flags_t gef_flags;
} gbp_endpoint_fwd_t;
gbp_endpoint_flags_t gef_flags;
} gbp_endpoint_fwd_t;
@@
-222,7
+230,7
@@
extern int gbp_endpoint_update_and_lock (gbp_endpoint_src_t src,
const ip46_address_t * ip,
const mac_address_t * mac,
index_t gbd, index_t grd,
const ip46_address_t * ip,
const mac_address_t * mac,
index_t gbd, index_t grd,
-
epg_id_t epg_id
,
+
sclass_t sclass
,
gbp_endpoint_flags_t flags,
const ip46_address_t * tun_src,
const ip46_address_t * tun_dst,
gbp_endpoint_flags_t flags,
const ip46_address_t * tun_src,
const ip46_address_t * tun_dst,