X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnsim%2Fnsim.h;fp=src%2Fplugins%2Fnsim%2Fnsim.h;h=7222a96dcb4388344f763e6442c7ed826d4cf2f1;hb=e6c3e8f0ee47799c76bdca362c4d75af62aacac3;hp=0ed9b251fbc7a45bb64cff72d08569f3d38ffe01;hpb=b2f44bd8e7d226d851d4d05981914e642a4da571;p=vpp.git diff --git a/src/plugins/nsim/nsim.h b/src/plugins/nsim/nsim.h index 0ed9b251fbc..7222a96dcb4 100644 --- a/src/plugins/nsim/nsim.h +++ b/src/plugins/nsim/nsim.h @@ -45,11 +45,44 @@ typedef struct CLIB_CACHE_LINE_ALIGN_MARK (pad); } nsim_wheel_t; +typedef struct nsim_node_ctx +{ + vnet_feature_config_main_t *fcm; + f64 expires; + u32 *drop; + u32 *reord; + u16 *reord_nexts; + u8 *action; + u64 n_buffered; + u64 n_loss; +} nsim_node_ctx_t; + +#define foreach_nsm_action \ + _(DROP, "Packet loss") \ + _(REORDER, "Packet reorder") + +enum nsm_action_bit +{ +#define _(sym, str) NSIM_ACTION_##sym##_BIT, + foreach_nsm_action +#undef _ +}; + +typedef enum nsm_action +{ +#define _(sym, str) NSIM_ACTION_##sym = 1 << NSIM_ACTION_##sym##_BIT, + foreach_nsm_action +#undef _ +} nsm_action_e; + typedef struct { /* API message ID base */ u16 msg_id_base; + /* output feature arc index */ + u16 arc_index; + /* Two interfaces, cross-connected with delay */ u32 sw_if_index0, sw_if_index1; u32 output_next_index0, output_next_index1; @@ -68,6 +101,7 @@ typedef struct f64 bandwidth; f64 packet_size; f64 drop_fraction; + f64 reorder_fraction; u32 poll_main_thread; u64 mmap_size;