diff options
Diffstat (limited to 'vnet/vnet/lisp-gpe/lisp_gpe.h')
-rw-r--r-- | vnet/vnet/lisp-gpe/lisp_gpe.h | 109 |
1 files changed, 61 insertions, 48 deletions
diff --git a/vnet/vnet/lisp-gpe/lisp_gpe.h b/vnet/vnet/lisp-gpe/lisp_gpe.h index 145b5d493e5..28acab651c4 100644 --- a/vnet/vnet/lisp-gpe/lisp_gpe.h +++ b/vnet/vnet/lisp-gpe/lisp_gpe.h @@ -28,17 +28,21 @@ #include <vnet/lisp-gpe/lisp_gpe_packet.h> /* encap headers */ +/* *INDENT-OFF* */ typedef CLIB_PACKED (struct { ip4_header_t ip4; /* 20 bytes */ udp_header_t udp; /* 8 bytes */ lisp_gpe_header_t lisp; /* 8 bytes */ }) ip4_udp_lisp_gpe_header_t; +/* *INDENT-ON* */ +/* *INDENT-OFF* */ typedef CLIB_PACKED (struct { ip6_header_t ip6; /* 40 bytes */ udp_header_t udp; /* 8 bytes */ lisp_gpe_header_t lisp; /* 8 bytes */ }) ip6_udp_lisp_gpe_header_t; +/* *INDENT-ON* */ typedef struct { @@ -57,7 +61,7 @@ typedef struct typedef struct lisp_gpe_sub_tunnel { /* Rewrite string. $$$$ embed vnet_rewrite header */ - u8 * rewrite; + u8 *rewrite; u32 parent_index; u32 locator_pair_index; u8 weight; @@ -73,20 +77,20 @@ typedef struct nomalized_sub_tunnel typedef struct { /* tunnel src and dst addresses */ - locator_pair_t * locator_pairs; + locator_pair_t *locator_pairs; /* locator-pairs with best priority become sub-tunnels */ - lisp_gpe_sub_tunnel_t * sub_tunnels; + lisp_gpe_sub_tunnel_t *sub_tunnels; /* sub-tunnels load balancing vector: contains list of sub-tunnel * indexes replicated according to weight */ - u32 * sub_tunnels_lbv; + u32 *sub_tunnels_lbv; /* number of entries in load balancing vector */ u32 sub_tunnels_lbv_count; /* normalized sub tunnel weights */ - normalized_sub_tunnel_weights_t * norm_sub_tunnel_weights; + normalized_sub_tunnel_weights_t *norm_sub_tunnel_weights; /* decap next index */ u32 decap_next_index; @@ -95,8 +99,8 @@ typedef struct ip_address_t src, dst; /* FIB indices */ - u32 encap_fib_index; /* tunnel partner lookup here */ - u32 decap_fib_index; /* inner IP lookup here */ + u32 encap_fib_index; /* tunnel partner lookup here */ + u32 decap_fib_index; /* inner IP lookup here */ /* vnet intfc hw/sw_if_index */ u32 hw_if_index; @@ -119,14 +123,16 @@ _(IP4_INPUT, "ip4-input") \ _(IP6_INPUT, "ip6-input") \ _(L2_INPUT, "l2-input") -typedef enum { +typedef enum +{ #define _(s,n) LISP_GPE_INPUT_NEXT_##s, foreach_lisp_gpe_ip_input_next #undef _ - LISP_GPE_INPUT_N_NEXT, + LISP_GPE_INPUT_N_NEXT, } lisp_gpe_input_next_t; -typedef enum { +typedef enum +{ #define lisp_gpe_error(n,s) LISP_GPE_ERROR_##n, #include <vnet/lisp-gpe/lisp_gpe_error.def> #undef lisp_gpe_error @@ -140,11 +146,11 @@ typedef ip4_fib_t ip4_src_fib_t; typedef struct ip6_src_fib { - BVT(clib_bihash) ip6_lookup_table; + BVT (clib_bihash) ip6_lookup_table; /* bitmap/vector of mask widths to search */ - uword * non_empty_dst_address_length_bitmap; - u8 * prefix_lengths_in_search_order; + uword *non_empty_dst_address_length_bitmap; + u8 *prefix_lengths_in_search_order; ip6_address_t fib_masks[129]; i32 dst_address_length_refcounts[129]; @@ -156,23 +162,23 @@ typedef struct ip6_src_fib typedef struct tunnel_lookup { /* Lookup lisp-gpe interfaces by dp table (eg. vrf/bridge index) */ - uword * hw_if_index_by_dp_table; + uword *hw_if_index_by_dp_table; /* lookup decap tunnel termination sw_if_index by vni and vice versa */ - uword * sw_if_index_by_vni; - uword * vni_by_sw_if_index; + uword *sw_if_index_by_vni; + uword *vni_by_sw_if_index; } tunnel_lookup_t; typedef struct lisp_gpe_main { /* pool of encap tunnel instances */ - lisp_gpe_tunnel_t * tunnels; + lisp_gpe_tunnel_t *tunnels; /* lookup tunnel by key */ mhash_t lisp_gpe_tunnel_by_key; /* Free vlib hw_if_indices */ - u32 * free_tunnel_hw_if_indices; + u32 *free_tunnel_hw_if_indices; u8 is_en; @@ -180,14 +186,14 @@ typedef struct lisp_gpe_main * ================== */ /* Pool of src fibs that are paired with dst fibs */ - ip4_src_fib_t * ip4_src_fibs; - ip6_src_fib_t * ip6_src_fibs; + ip4_src_fib_t *ip4_src_fibs; + ip6_src_fib_t *ip6_src_fibs; tunnel_lookup_t l3_ifaces; /* Lookup lgpe_ipX_lookup_next by vrf */ - uword * lgpe_ip4_lookup_next_index_by_table_id; - uword * lgpe_ip6_lookup_next_index_by_table_id; + uword *lgpe_ip4_lookup_next_index_by_table_id; + uword *lgpe_ip6_lookup_next_index_by_table_id; /* next node indexes that point ip4/6 lookup to lisp gpe ip lookup */ u32 ip4_lookup_next_lgpe_ip4_lookup; @@ -197,23 +203,24 @@ typedef struct lisp_gpe_main * ================== */ /* l2 lisp fib */ - BVT(clib_bihash) l2_fib; + BVT (clib_bihash) l2_fib; tunnel_lookup_t l2_ifaces; /* convenience */ - vlib_main_t * vlib_main; - vnet_main_t * vnet_main; - ip4_main_t * im4; - ip6_main_t * im6; - ip_lookup_main_t * lm4; - ip_lookup_main_t * lm6; + vlib_main_t *vlib_main; + vnet_main_t *vnet_main; + ip4_main_t *im4; + ip6_main_t *im6; + ip_lookup_main_t *lm4; + ip_lookup_main_t *lm6; } lisp_gpe_main_t; lisp_gpe_main_t lisp_gpe_main; always_inline lisp_gpe_main_t * -vnet_lisp_gpe_get_main() { +vnet_lisp_gpe_get_main () +{ return &lisp_gpe_main; } @@ -222,8 +229,7 @@ extern vlib_node_registration_t lgpe_ip6_lookup_node; extern vlib_node_registration_t lisp_gpe_ip4_input_node; extern vlib_node_registration_t lisp_gpe_ip6_input_node; -u8 * -format_lisp_gpe_header_with_length (u8 * s, va_list * args); +u8 *format_lisp_gpe_header_with_length (u8 * s, va_list * args); typedef struct { @@ -240,13 +246,12 @@ typedef struct u32 dp_table; }; u8 is_l2; - u32 vni; /* host byte order */ + u32 vni; /* host byte order */ } vnet_lisp_gpe_add_del_iface_args_t; -u8 -vnet_lisp_gpe_enable_disable_status(void); +u8 vnet_lisp_gpe_enable_disable_status (void); int -vnet_lisp_gpe_add_del_iface (vnet_lisp_gpe_add_del_iface_args_t *a, +vnet_lisp_gpe_add_del_iface (vnet_lisp_gpe_add_del_iface_args_t * a, u32 * hw_if_indexp); typedef struct @@ -254,8 +259,8 @@ typedef struct u8 is_en; } vnet_lisp_gpe_enable_disable_args_t; -clib_error_t * -vnet_lisp_gpe_enable_disable (vnet_lisp_gpe_enable_disable_args_t *a); +clib_error_t + * vnet_lisp_gpe_enable_disable (vnet_lisp_gpe_enable_disable_args_t * a); typedef struct { @@ -270,13 +275,13 @@ typedef struct gid_address_t rmt_eid; /* vector of locator pairs */ - locator_pair_t * locator_pairs; + locator_pair_t *locator_pairs; /* FIB indices to lookup remote locator at encap and inner IP at decap */ u32 encap_fib_index; u32 decap_fib_index; - u32 decap_next_index; /* TODO is this really needed? */ + u32 decap_next_index; /* TODO is this really needed? */ /* VNI/tenant id in HOST byte order */ u32 vni; @@ -293,16 +298,16 @@ typedef struct } vnet_lisp_gpe_add_del_fwd_entry_args_t; int -vnet_lisp_gpe_add_del_fwd_entry (vnet_lisp_gpe_add_del_fwd_entry_args_t *a, +vnet_lisp_gpe_add_del_fwd_entry (vnet_lisp_gpe_add_del_fwd_entry_args_t * a, u32 * hw_if_indexp); int ip_sd_fib_add_del_route (lisp_gpe_main_t * lgm, ip_prefix_t * dst_prefix, - ip_prefix_t * src_prefix, u32 table_id, - ip_adjacency_t * add_adj, u8 is_add); + ip_prefix_t * src_prefix, u32 table_id, + ip_adjacency_t * add_adj, u8 is_add); u32 ip_sd_fib_get_route (lisp_gpe_main_t * lgm, ip_prefix_t * dst_prefix, - ip_prefix_t * src_prefix, u32 table_id); + ip_prefix_t * src_prefix, u32 table_id); #define foreach_lgpe_ip4_lookup_next \ _(DROP, "error-drop") \ @@ -313,7 +318,7 @@ typedef enum lgpe_ip4_lookup_next #define _(sym,str) LGPE_IP4_LOOKUP_NEXT_##sym, foreach_lgpe_ip4_lookup_next #undef _ - LGPE_IP4_LOOKUP_N_NEXT, + LGPE_IP4_LOOKUP_N_NEXT, } lgpe_ip4_lookup_next_t; #define foreach_lgpe_ip6_lookup_next \ @@ -325,16 +330,24 @@ typedef enum lgpe_ip6_lookup_next #define _(sym,str) LGPE_IP6_LOOKUP_NEXT_##sym, foreach_lgpe_ip6_lookup_next #undef _ - LGPE_IP6_LOOKUP_N_NEXT, + LGPE_IP6_LOOKUP_N_NEXT, } lgpe_ip6_lookup_next_t; -u8 * format_vnet_lisp_gpe_status (u8 * s, va_list * args); +u8 *format_vnet_lisp_gpe_status (u8 * s, va_list * args); #define L2_FIB_DEFAULT_HASH_NUM_BUCKETS (64 * 1024) #define L2_FIB_DEFAULT_HASH_MEMORY_SIZE (32<<20) u32 lisp_l2_fib_lookup (lisp_gpe_main_t * lgm, u16 bd_index, u8 src_mac[8], - u8 dst_mac[8]); + u8 dst_mac[8]); #endif /* included_vnet_lisp_gpe_h */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |