X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Ftransport_types.h;h=0041adb2c64c5a9ab9ce71a4023aa704105a2835;hb=4ac258497;hp=1e7d5672f1c992938b6efd9c663cf2ceb3cf5bb7;hpb=4b47ee26cba610b26bbfc088736846541bee7be3;p=vpp.git diff --git a/src/vnet/session/transport_types.h b/src/vnet/session/transport_types.h index 1e7d5672f1c..0041adb2c64 100644 --- a/src/vnet/session/transport_types.h +++ b/src/vnet/session/transport_types.h @@ -215,6 +215,57 @@ typedef struct transport_endpoint_pair_ #undef _ } transport_endpoint_cfg_t; +#define foreach_transport_endpt_cfg_flags \ + _ (CSUM_OFFLOAD) \ + _ (GSO) \ + _ (RATE_SAMPLING) + +typedef enum transport_endpt_attr_flag_bit_ +{ +#define _(name) TRANSPORT_ENDPT_ATTR_F_BIT_##name, + foreach_transport_endpt_cfg_flags +#undef _ +} __clib_packed transport_endpt_attr_flag_bit_t; + +typedef enum transport_endpt_attr_flag_ +{ +#define _(name) \ + TRANSPORT_ENDPT_ATTR_F_##name = 1 << TRANSPORT_ENDPT_ATTR_F_BIT_##name, + foreach_transport_endpt_cfg_flags +#undef _ +} __clib_packed transport_endpt_attr_flag_t; + +#define foreach_transport_attr_fields \ + _ (u64, next_output_node, NEXT_OUTPUT_NODE) \ + _ (u16, mss, MSS) \ + _ (u8, flags, FLAGS) \ + _ (u8, cc_algo, CC_ALGO) + +typedef enum transport_endpt_attr_type_ +{ +#define _(type, name, str) TRANSPORT_ENDPT_ATTR_##str, + foreach_transport_attr_fields +#undef _ +} __clib_packed transport_endpt_attr_type_t; + +typedef struct transport_endpt_attr_ +{ + transport_endpt_attr_type_t type; + union + { +#define _(type, name, str) type name; + foreach_transport_attr_fields +#undef _ + }; +} transport_endpt_attr_t; + +typedef struct transport_endpt_ext_cfg_ +{ + u16 type; + u16 len; + u8 data[0]; +} transport_endpt_ext_cfg_t; + typedef clib_bihash_24_8_t transport_endpoint_table_t; #define ENDPOINT_INVALID_INDEX ((u32)~0)