X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnsim%2Fnsim_test.c;fp=src%2Fplugins%2Fnsim%2Fnsim_test.c;h=68426d0b5694bb6b4a53d6cbad16f4f87e7b24c6;hb=e6c3e8f0ee47799c76bdca362c4d75af62aacac3;hp=b155c923f877e9dfe754db451da64e582744afc9;hpb=b2f44bd8e7d226d851d4d05981914e642a4da571;p=vpp.git diff --git a/src/plugins/nsim/nsim_test.c b/src/plugins/nsim/nsim_test.c index b155c923f87..68426d0b569 100644 --- a/src/plugins/nsim/nsim_test.c +++ b/src/plugins/nsim/nsim_test.c @@ -214,6 +214,58 @@ api_nsim_configure (vat_main_t * vam) return ret; } +static int +api_nsim_configure2 (vat_main_t * vam) +{ + vl_api_nsim_configure2_t *mp; + unformat_input_t *i = vam->input; + f64 delay = 0.0, bandwidth = 0.0; + f64 packet_size = 1500.0; + u32 packets_per_drop = 0, packets_per_reorder; + int ret; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "delay %U", unformat_delay, &delay)) + ; + else if (unformat (i, "bandwidth %U", unformat_bandwidth, &bandwidth)) + ; + else if (unformat (i, "packet-size %f", &packet_size)) + ; + else if (unformat (i, "packets-per-drop %u", &packets_per_drop)) + ; + else if (unformat (i, "packets-per-reorder %u", &packets_per_reorder)) + ; + else + break; + } + + if (delay == 0.0 || bandwidth == 0.0) + { + errmsg ("must specify delay and bandwidth"); + return -99; + } + + /* Construct the API message */ + M (NSIM_CONFIGURE2, mp); + mp->delay_in_usec = (u32) (delay * 1e6); + mp->delay_in_usec = ntohl (mp->delay_in_usec); + mp->average_packet_size = (u32) (packet_size); + mp->average_packet_size = ntohl (mp->average_packet_size); + mp->bandwidth_in_bits_per_second = (u64) (bandwidth); + mp->bandwidth_in_bits_per_second = + clib_host_to_net_u64 (mp->bandwidth_in_bits_per_second); + mp->packets_per_drop = ntohl (packets_per_drop); + mp->packets_per_reorder = ntohl (packets_per_reorder); + + /* send it... */ + S (mp); + + /* Wait for a reply... */ + W (ret); + return ret; +} + #include /*