aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_ip6.py
AgeCommit message (Expand)AuthorFilesLines
2018-09-11GBP Endpoint UpdatesNeale Ranns1-1/+2
2018-08-03loop counter to prevent infiinte number of look ups per-packetNeale Ranns1-1/+120
2018-07-02make_test: add icmp packet size sweep and icmp echo testsJan Gelety1-23/+101
2018-05-15No overlapping sub-nets on any interface in the same table/VRF (VPP-943)Neale Ranns1-1/+5
2018-04-27IPv6 NS: use the mcast rewrite node to fill in the destination MACNeale Ranns1-1/+1
2018-03-16IPv6 ND Router discovery control plane (VPP-1095)Juraj Sloboda1-0/+175
2018-03-16IPv6 ND Router discovery data plane (VPP-1095)Juraj Sloboda1-3/+113
2018-01-09test: consolidate the multiple versions of send_and_*Neale Ranns1-49/+0
2017-11-11MPLS disposition actions at the tail of unicast LSPsNeale Ranns1-2/+2
2017-10-31Refactor IP input checks for re-use at MPLS dispositionNeale Ranns1-1/+77
2017-10-10punt and drop features:Neale Ranns1-1/+113
2017-09-11FIB table add/delete APINeale Ranns1-2/+5
2017-08-08L2 over MPLSNeale Ranns1-13/+13
2017-08-01Tests for recursive load-balancing with no choices.Neale Ranns1-0/+33
2017-05-26ARP/ND use path_remove to complement path_addNeale Ranns1-0/+117
2017-05-25MPLS hash function improvementsNeale Ranns1-23/+94
2017-04-26IP Flow Hash Config fixesNeale Ranns1-0/+149
2017-04-19Learn IP6 link-local ND entries from NSs sourced from link-local addressNeale Ranns1-26/+80
2017-03-17Fix IP feature ordering.Neale Ranns1-1/+99
2017-03-09IMplementation for option to not create a FIB table entry when adding a neigh...Neale Ranns1-2/+26
2017-03-09Tests to target holes in adjacency and DPO test coverageNeale Ranns1-1/+70
2017-03-08Proxy ND (RFC4389 - or a sub-set thereof). This allows the 'emulation' of bri...Neale Ranns1-17/+276
2017-03-03IPv6 RA improvementsNeale Ranns1-5/+214
2017-02-03pep8 compliance for test_ip6.pyNeale Ranns1-3/+3
2017-01-27IP Multicast FIB (mfib)Neale Ranns1-78/+53
2017-01-11make test: improve documentation and PEP8 complianceKlement Sekera1-27/+30
2017-01-10IPv6 NS RS tests and fixesNeale Ranns1-1/+236
2016-12-23make test: improve handling of packet capturesKlement Sekera1-2/+1
2016-12-05make test: fix missing log/packet messagesKlement Sekera1-7/+6
2016-11-15Update test documentation.Matej Klotton1-15/+62
2016-10-26refactor test frameworkKlement Sekera1-219/+104
2016-10-03test: new test infrastructureDamjan Marion1-0/+281
">convert_clib_file(char *clib_file) { clib_error_t *error = 0; int i; elog_main_t *em = &elog_main; double starttime, delta; error = elog_read_file (&elog_main, clib_file); if (error) { clib_warning("%U", format_clib_error, error); exit (1); } em = &elog_main; starttime = em->events[0].time; for (i = 0; i < vec_len (em->events); i++) { elog_event_t *e; /* clib event */ evt_t *ep; /* xxx2cpel event */ u8 *s; u64 timestamp; elog_event_type_t *t; u8 *brief_event_name; u8 *track_name; int j; e = vec_elt_at_index(em->events, i); /* Seconds since start of log */ delta = e->time - starttime; /* u64 nanoseconds since start of log */ timestamp = delta * 1e9; s = format (0, "%U%c", format_elog_event, em, e, 0); /* allocate an event instance */ vec_add2(the_events, ep, 1); ep->timestamp = timestamp; /* convert string event code to a real number */ t = vec_elt_at_index (em->event_types, e->event_type); /* * Construct a reasonable event name. * Truncate the format string at the first whitespace break * or printf format character. */ brief_event_name = format (0, "%s", t->format); for (j = 0; j < vec_len (brief_event_name); j++) { if (brief_event_name[j] == ' ' || brief_event_name[j] == '%' || brief_event_name[j] == '(') { brief_event_name[j] = 0; break; } } /* Throw away that much of the formatted event */ vec_delete (s, j+1, 0); ep->event_id = find_or_add_event(brief_event_name, "%s"); track_name = format (0, "%U%c", format_elog_track_name, em, e, 0); ep->track_id = find_or_add_track (track_name); ep->datum = find_or_add_strtab(s); vec_free (track_name); vec_free(brief_event_name); vec_free(s); } } u8 *vec_basename (char *s) { u8 * rv; char *cp = s; while (*cp) cp++; cp--; while (cp > s && *cp != '/') cp--; if (cp > s) cp++; rv = format (0, "%s", cp); return rv; } int event_compare (const void *a0, const void *a1) { evt_t *e0 = (evt_t *)a0; evt_t *e1 = (evt_t *)a1; if (e0->timestamp < e1->timestamp) return -1; else if (e0->timestamp > e1->timestamp) return 1; return 0; } int main (int argc, char **argv) { int curarg=1; char **inputfiles = 0; char *outputfile = 0; FILE *ofp; clib_mem_init_thread_safe (0, 256 << 20); if (argc < 3) goto usage; while (curarg < argc) { if (!strncmp(argv[curarg], "--input-file", 3)) { curarg++; if (curarg < argc) { vec_add1 (inputfiles, argv[curarg]); curarg++; continue; } clib_warning("Missing filename after --input-file\n"); exit (1); } if (!strncmp(argv[curarg], "--output-file", 3)) { curarg ++; if (curarg < argc) { outputfile = argv[curarg]; curarg ++; continue; } clib_warning("Missing filename after --output-file\n"); exit(1); } vec_add1 (inputfiles, argv[curarg]); curarg++; continue; usage: fformat(stderr, "c2cpel [--input-file] <filename> --output-file <filename>\n"); exit(1); } if (vec_len(inputfiles) == 0 || outputfile == 0) goto usage; if (vec_len(inputfiles) > 1) goto usage; clib_mem_init (0, ((uword)3<<30)); cpel_util_init(); convert_clib_file (inputfiles[0]); ofp = fopen (outputfile, "w"); if (ofp == NULL) { clib_unix_warning ("couldn't create %s", outputfile); exit (1); } alpha_sort_tracks(); fixup_event_tracks(); /* * Four sections: string-table, event definitions, track defs, events. */ if (!write_cpel_header(ofp, 4)) { clib_warning ("Error writing cpel header to %s...\n", outputfile); unlink(outputfile); exit(1); } if (!write_string_table(ofp)) { clib_warning ("Error writing string table to %s...\n", outputfile); unlink(outputfile); exit(1); } if (!write_event_defs(ofp)) { clib_warning ("Error writing event defs to %s...\n", outputfile); unlink(outputfile); exit(1); } if (!write_track_defs(ofp)) { clib_warning ("Error writing track defs to %s...\n", outputfile); unlink(outputfile); exit(1); } if (!write_events(ofp, (u64) 1e9)) { clib_warning ("Error writing events to %s...\n", outputfile); unlink(outputfile); exit(1); } fclose(ofp); exit (0); }