summaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp/tcp_output.c
AgeCommit message (Expand)AuthorFilesLines
2018-12-26tcp: separate active and passive establish timersFlorin Coras1-10/+10
2018-12-22tcp: improve waitclose in closing statesFlorin Coras1-1/+8
2018-12-17tcp: fix handling of broken syn optionsFlorin Coras1-1/+0
2018-12-13tcp: fix handling of no wscale in synsFlorin Coras1-1/+4
2018-12-13session/tcp: support tx flush markFlorin Coras1-1/+6
2018-12-07tcp: measure us rtt with syn-ackFlorin Coras1-0/+1
2018-12-07tcp: validate connection state in retransmitFlorin Coras1-2/+2
2018-11-30Metadata / opaque formatting belongs in vppDave Barach1-0/+2
2018-11-26Minor tweaksDave Barach1-10/+11
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach1-13/+14
2018-11-12tcp: handle disconnects after enq notificationsFlorin Coras1-2/+1
2018-11-09tcp: basic cubic implementationFlorin Coras1-1/+1
2018-11-08tcp: pacer and mrtt estimation improvementsFlorin Coras1-1/+1
2018-11-07tcp: consume incoming buffers instead of reusingFlorin Coras1-28/+67
2018-11-06tcp: dequeue acked only once per burstFlorin Coras1-2/+2
2018-11-05tcp: send unsent data in fast recoveryFlorin Coras1-75/+156
2018-11-02tcp: coverity fixesFlorin Coras1-1/+1
2018-11-02session: measure dispatch period only if under loadFlorin Coras1-1/+1
2018-11-02tcp: minimize use of tlsFlorin Coras1-140/+131
2018-11-01tcp: fast retransmit pacingFlorin Coras1-3/+7
2018-10-25tcp/session: add tx pacerFlorin Coras1-1/+1
2018-10-23tcp: fast retransmit improvementsFlorin Coras1-21/+57
2018-10-23c11 safe string handling supportDave Barach1-2/+2
2018-10-17tcp: fix multiple fin retries (VPP-1461)Florin Coras1-9/+9
2018-10-16tls: fix multi threaded medium scale test (VPP-1457)Florin Coras1-1/+9
2018-09-25tcp: add option to cfg max rx fifo sizeFlorin Coras1-1/+2
2018-08-24tcp: fix cc recovery re-entry and persist timer popFlorin Coras1-9/+22
2018-07-03tcp: update snd_una_max for retranmsitsFlorin Coras1-0/+4
2018-06-30tcp: fix single loop prefetchFlorin Coras1-2/+2
2018-06-26tcp/session: tx optimizationsFlorin Coras1-19/+48
2018-06-26tcp: cleanup functionsFlorin Coras1-68/+67
2018-06-20tcp: add per worker ctx structureFlorin Coras1-21/+24
2018-06-19tcp: optimize tcp outputFlorin Coras1-162/+158
2018-06-12tcp: add close-wait state flagsFlorin Coras1-0/+1
2018-06-11tcp: cleanup connection/session fixesFlorin Coras1-2/+3
2018-06-10tcp: fix timer based recovery exit conditionFlorin Coras1-1/+2
2018-05-26tcp: loss recovery improvements/fixesFlorin Coras1-11/+15
2018-05-23tcp: cc improvements and fixesFlorin Coras1-5/+7
2018-05-21tcp: unlock link-local adjacencies on connection cleanupFlorin Coras1-24/+9
2018-05-18session: add session process nodeFlorin Coras1-0/+2
2018-05-17tcp: handle link-local addressesFlorin Coras1-6/+61
2018-05-10tcp: fix jumbo retransmitsFlorin Coras1-42/+42
2018-04-20tcp: improve statsFlorin Coras1-0/+6
2018-03-29tcp: fix fib index buffer taggingFlorin Coras1-13/+17
2018-03-23tcp/session: sprinkle prefetchesFlorin Coras1-0/+8
2018-03-02session: first approximation implementation of tlsFlorin Coras1-1/+1
2018-02-07Refactor vlib_buffer flagsDamjan Marion1-2/+2
2018-02-01tcp: tcp_output.c failed to compile when VLIB_BUFFER_TRACE_TRAJECTORY is enabledSteven1-1/+1
2017-12-11session: generalize handling of network transportsFlorin Coras1-0/+1
2017-11-29session: fix preallocation of local endpoint tableFlorin Coras1-3/+1
an> 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_link_speed (u8 * s, va_list * va) { vlib_pci_device_info_t *d = va_arg (*va, vlib_pci_device_info_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) { vlib_pci_main_t *pm = &pci_main; pm->log_default = vlib_log_register_class ("pci", 0); return 0; } VLIB_INIT_FUNCTION (pci_bus_init); /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */