summaryrefslogtreecommitdiffstats
path: root/src/plugins/ioam
AgeCommit message (Expand)AuthorFilesLines
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan7-7/+7
2018-01-15fix udp_ping api naming errorGabriel Ganne3-35/+17
2018-01-09api: refactor vlibmemoryFlorin Coras2-4/+4
2017-12-21VPP-1109 Fix loop for some CLI (code review)Swarup Nayak1-0/+3
2017-10-24Add extern to *_main global variable declarations in header files.Dave Wallace2-1/+3
2017-10-09vppapigen: support per-file (major,minor,patch) version stampsDave Barach7-0/+10
2017-10-03Repair vlib API socket serverDave Barach14-14/+8
2017-06-06Rework vxlan-gpe to support FIB 2.0 and bypass modeHongjun Ni1-1/+1
2017-05-30Flowprobe: Stateful flows and IPv6, L4 recordingOle Troan2-2/+4
2017-05-24IPv6 Performance bugsNeale Ranns2-2/+1
2017-05-17ioam: configuration for SRv6 localsid (VPP-693)shwethab4-23/+54
2017-05-05First commit SR MPLSPablo Camarillo3-3/+3
2017-04-27ioam: adding missing setup api msg crc tableShwetha Bhandari4-0/+66
2017-04-25"autoreply" flag: autogenerate standard xxx_reply_t messagesDave Barach6-158/+14
2017-04-13Remove unsed parameter from fib_table_entry_special_add() (only used in FIB t...Neale Ranns1-3/+1
2017-04-11Remove usued, redundant and deprecated code from lookup.hNeale Ranns3-11/+6
2017-04-06Use thread local storage for thread indexDamjan Marion2-11/+11
2017-03-22vlib: add description field in plugin registrationDamjan Marion1-0/+1
2017-03-22Initial draft of VPP changes to cleanup iOAM export.Vengada7-5/+7
2017-03-16API:replaced all REPLY_MACRO's with api_helper_macros.hEyal Bari5-151/+10
2017-03-15VPP changes to support iOAM over NSH-MD2. Separate trace dataVengada7-16/+51
2017-03-14ioam: ip6 hop by hop ext header and SR header co-existenceshwethab1-3/+3
2017-03-14IOAM Coverity fixAkshayaNadahalli8-34/+42
2017-03-10Fix vat_api_hookup name collisionDave Barach1-3/+3
2017-03-07In-band OAM active probe (VPP-471)AkshayaNadahalli19-14/+2638
2017-03-06ioam: manycast using iOAM and SR (VPP-628)Shwetha Bhandari12-9/+2637
2017-03-01VPP-598: tcp stack initial commitDave Barach3-3/+3
2017-02-17ioam: declare export_node instead of defining it in header fileDamjan Marion1-1/+1
2017-02-14Fix coverity issues: ioamShwetha Bhandari2-3/+9
2017-02-13VPP-632 : InBand OAM AnalyserAkshayaNadahalli27-289/+2738
2017-02-03Plugin infrastructure improvementsDamjan Marion1-12/+6
2017-02-02Refactor fragile msg macro W and W2 to not burry return control flow.Jon Loeliger5-34/+45
2017-02-02Localize the timeout variable within the W message macro.Jon Loeliger5-15/+1
2017-02-02Convert message macro S to accept a message pointer parameter;Jon Loeliger5-15/+19
2017-02-02Ensure all M() and M2() second parameters are the message pointer.Jon Loeliger5-16/+15
2017-01-27Cleanup some obfuscated code in next node handling.Vengada3-8/+8
2017-01-25Repair plugin binary API message numberingDave Barach5-0/+10
2017-01-24Fix coverity defect.Vengada1-1/+1
2017-01-23binary-api debug CLI works with pluginsDave Barach5-222/+20
2017-01-04Merging all ioam plugin libraries to single libraryAkshayaNadahalli9-103/+36
2017-01-02ioam: fix Coverity issueVengada1-1/+1
2017-01-01Move java,lua api and remaining plugins to src/Damjan Marion53-0/+10625
p">, d->numa_node); vlib_cli_output (vm, "%-13U%-5v%04x:%04x %-13U%-16s%-32v%U", format_vlib_pci_addr, &d->bus_address, s, d->vendor_id, d->device_id, format_vlib_pci_link_speed, d, d->driver_name ? (char *) d->driver_name : "", d->product_name, format_vlib_pci_vpd, d->vpd_r, 0); })); /* *INDENT-ON* */ vec_free (s); return 0; } uword unformat_vlib_pci_addr (unformat_input_t * input, va_list * args) { vlib_pci_addr_t *addr = va_arg (*args, vlib_pci_addr_t *); u32 x[4]; if (!unformat (input, "%x:%x:%x.%x", &x[0], &x[1], &x[2], &x[3])) return 0; addr->domain = x[0]; addr->bus = x[1]; addr->slot = x[2]; addr->function = x[3]; return 1; } u8 * format_vlib_pci_addr (u8 * s, va_list * va) { vlib_pci_addr_t *addr = va_arg (*va, vlib_pci_addr_t *); return format (s, "%04x:%02x:%02x.%x", addr->domain, addr->bus, addr->slot, addr->function); } u8 * format_vlib_pci_handle (u8 * s, va_list * va) { vlib_pci_addr_t *addr = va_arg (*va, vlib_pci_addr_t *); return format (s, "%x/%x/%x", addr->bus, addr->slot, addr->function); } u8 * format_vlib_pci_link_speed (u8 * s, va_list * va) { vlib_pci_device_t *d = va_arg (*va, vlib_pci_device_t *); pcie_config_regs_t *r = pci_config_find_capability (&d->config0, PCI_CAP_ID_PCIE); int width; if (!r) return format (s, "unknown"); width = (r->link_status >> 4) & 0x3f; if ((r->link_status & 0xf) == 1) return format (s, "2.5 GT/s x%u", width); if ((r->link_status & 0xf) == 2) return format (s, "5.0 GT/s x%u", width); if ((r->link_status & 0xf) == 3) return format (s, "8.0 GT/s x%u", width); return format (s, "unknown"); } u8 * format_vlib_pci_vpd (u8 * s, va_list * args) { u8 *data = va_arg (*args, u8 *); u8 *id = va_arg (*args, u8 *); u32 indent = format_get_indent (s); char *string_types[] = { "PN", "EC", "SN", "MN", 0 }; uword p = 0; int first_line = 1; if (vec_len (data) < 3) return s; while (p + 3 < vec_len (data)) { if (data[p] == 0 && data[p + 1] == 0) return s; if (p + data[p + 2] > vec_len (data)) return s; if (id == 0) { int is_string = 0; char **c = string_types; while (c[0]) { if (*(u16 *) & data[p] == *(u16 *) c[0]) is_string = 1; c++; } if (data[p + 2]) { if (!first_line) s = format (s, "\n%U", format_white_space, indent); else { first_line = 0; s = format (s, " "); } s = format (s, "%c%c: ", data[p], data[p + 1]); if (is_string) vec_add (s, data + p + 3, data[p + 2]); else { int i; const int max_bytes = 8; s = format (s, "0x"); for (i = 0; i < clib_min (data[p + 2], max_bytes); i++) s = format (s, " %02x", data[p + 3 + i]); if (data[p + 2] > max_bytes) s = format (s, " ..."); } } } else if (*(u16 *) & data[p] == *(u16 *) id) { vec_add (s, data + p + 3, data[p + 2]); return s; } p += 3 + data[p + 2]; } return s; } /* *INDENT-OFF* */ VLIB_CLI_COMMAND (show_pci_command, static) = { .path = "show pci", .short_help = "show pci [all]", .function = show_pci_fn, }; /* *INDENT-ON* */ clib_error_t * pci_bus_init (vlib_main_t * vm) { return 0; } VLIB_INIT_FUNCTION (pci_bus_init); /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */