summaryrefslogtreecommitdiffstats
path: root/test/vpp_pg_interface.py
AgeCommit message (Expand)AuthorFilesLines
2021-01-20ip: add IPv6 ping test for link-layer addressBenoƮt Ganne1-6/+11
2020-08-14gso: packet coalesce libraryMohsin Kazmi1-0/+20
2020-04-06misc: fix python sonarcloud BLOCKER level issuesPaul Vinciguerra1-1/+2
2019-12-14tests: changes for scapy 2.4.3 migrationsnaramre1-2/+1
2019-10-11tests: explicitly wait for the PG to finish before looking for capture fileAndrew Yourtchenko1-0/+15
2019-08-20tests: support worker threadsKlement Sekera1-1/+4
2019-07-31tests: disable pg capture before enabling itAndrew Yourtchenko1-1/+2
2019-07-28pg: add GSO supportMohsin Kazmi1-2/+16
2019-06-27tests: rename stream name in testsPaul Vinciguerra1-1/+2
2019-06-04Tests: simple refactor in vpp_pg_interface.Paul Vinciguerra1-25/+23
2019-05-29Tests: vpp_pg_interface. Don't rewrite Dot1AD ethertype.Paul Vinciguerra1-11/+0
2019-05-28make test: add option in pg interfaces for duplicating packetsAlexandre Poirrier1-2/+12
2019-03-11VPP-1508: Use scapy.compat to manage packet level library differences.Paul Vinciguerra1-2/+7
2019-03-11Tests: fix time.sleep(0) # yield. Reduce sleep related log messages.Paul Vinciguerra1-3/+3
2018-06-24Revert "Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums""Klement Sekera1-3/+3
2018-06-22Revert "ipsec: VPP-1316 calculate IP/TCP/UDP inner checksums"Ole Troan1-3/+3
2018-06-21ipsec: VPP-1316 calculate IP/TCP/UDP inner checksumsKlement Sekera1-3/+3
2017-02-21test: ip6 vrf instances multi-context test (CSIT-497)Jan Gelety1-2/+4
2017-02-14make test: improve stabilityKlement Sekera1-46/+57
2017-02-09make test: work around scapy truncated packetsKlement Sekera1-0/+33
2017-01-12make test: fix capture handling special-caseKlement Sekera1-8/+32
2017-01-11make test: improve documentation and PEP8 complianceKlement Sekera1-22/+26
2017-01-11test: ip4 vrf instances multi-context test (CSIT-492)Jan1-12/+10
2017-01-10IPv6 NS RS tests and fixesNeale Ranns1-2/+3
2017-01-09In python tests send NS packets to the solicited mcast address with correct m...Neale Ranns1-3/+8
2017-01-02make test: fix debug printKlement Sekera1-1/+1
2017-01-02make test: rotate capture files after consuming arp/ndpKlement Sekera1-2/+8
2017-01-02make test: fix assert_nothing_captured apiKlement Sekera1-8/+9
2016-12-23make test: improve handling of packet capturesKlement Sekera1-58/+128
2016-12-19make test: filter IPv6 RAs out by defaultKlement Sekera1-5/+29
2016-12-16make test: improve robustness and performanceKlement Sekera1-23/+59
2016-12-09When waiting for an IPv6 response, filter non-ND packetsNeale Ranns1-16/+21
2016-12-07BFD: basic asynchronous session up/downKlement Sekera1-2/+38
2016-12-05make test: fix missing log/packet messagesKlement Sekera1-20/+26
2016-11-24Remove postinit from make-test interfacesMatej Klotton1-13/+10
2016-11-14make test: improve naming of temporary pcap filesKlement Sekera1-6/+7
2016-11-11Add IRB testMatej Klotton1-1/+90
2016-11-09Improve test framework documentationKlement Sekera1-4/+37
2016-10-26refactor test frameworkKlement Sekera1-0/+99
s="p">, paths); done: vec_free (paths); BAD_SW_IF_INDEX_LABEL; /* *INDENT-OFF* */ REPLY_MACRO2 (VL_API_L3XC_UPDATE_REPLY + l3xc_base_msg_id, ({ rmp->stats_index = 0; })) /* *INDENT-ON* */ } static void vl_api_l3xc_del_t_handler (vl_api_l3xc_del_t * mp) { vl_api_l3xc_del_reply_t *rmp; int rv = 0; VALIDATE_SW_IF_INDEX (mp); rv = l3xc_delete (ntohl (mp->sw_if_index), mp->is_ip6); BAD_SW_IF_INDEX_LABEL; REPLY_MACRO (VL_API_L3XC_DEL_REPLY + l3xc_base_msg_id); } typedef struct l3xc_dump_walk_ctx_t_ { vl_api_registration_t *rp; u32 context; } l3xc_dump_walk_ctx_t; static int l3xc_send_details (u32 l3xci, void *args) { fib_path_encode_ctx_t path_ctx = { .rpaths = NULL, }; vl_api_l3xc_details_t *mp; l3xc_dump_walk_ctx_t *ctx; fib_route_path_t *rpath; vl_api_fib_path_t *fp; size_t msg_size; l3xc_t *l3xc; u8 n_paths; ctx = args; l3xc = l3xc_get (l3xci); n_paths = fib_path_list_get_n_paths (l3xc->l3xc_pl); msg_size = sizeof (*mp) + sizeof (mp->l3xc.paths[0]) * n_paths; mp = vl_msg_api_alloc (msg_size); clib_memset (mp, 0, msg_size); mp->_vl_msg_id = ntohs (VL_API_L3XC_DETAILS + l3xc_base_msg_id); /* fill in the message */ mp->context = ctx->context; mp->l3xc.n_paths = n_paths; mp->l3xc.sw_if_index = htonl (l3xc->l3xc_sw_if_index); fib_path_list_walk_w_ext (l3xc->l3xc_pl, NULL, fib_path_encode, &path_ctx); fp = mp->l3xc.paths; vec_foreach (rpath, path_ctx.rpaths) { fib_api_path_encode (rpath, fp); fp++; } vl_api_send_msg (ctx->rp, (u8 *) mp); return (1); } static void vl_api_l3xc_dump_t_handler (vl_api_l3xc_dump_t * mp) { vl_api_registration_t *rp; u32 sw_if_index; rp = vl_api_client_index_to_registration (mp->client_index); if (rp == 0) return; l3xc_dump_walk_ctx_t ctx = { .rp = rp, .context = mp->context, }; sw_if_index = ntohl (mp->sw_if_index); if (~0 == sw_if_index) l3xc_walk (l3xc_send_details, &ctx); else { fib_protocol_t fproto; index_t l3xci; FOR_EACH_FIB_IP_PROTOCOL (fproto) { l3xci = l3xc_find (sw_if_index, fproto); if (INDEX_INVALID != l3xci) l3xc_send_details (l3xci, &ctx); } } } #include <l3xc/l3xc.api.c> static clib_error_t * l3xc_api_init (vlib_main_t * vm) { /* Ask for a correctly-sized block of API message decode slots */ l3xc_base_msg_id = setup_message_id_table (); return 0; } VLIB_INIT_FUNCTION (l3xc_api_init); /* *INDENT-OFF* */ VLIB_PLUGIN_REGISTER () = { .version = VPP_BUILD_VER, .description = "L3 Cross-Connect (L3XC)", }; /* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */