aboutsummaryrefslogtreecommitdiffstats
path: root/extras
AgeCommit message (Expand)AuthorFilesLines
2020-04-06misc: fix python sonarcloud BLOCKER level issuesPaul Vinciguerra2-58/+58
2020-04-03misc: fix sonarcloud html issueDave Wallace1-1/+1
2020-03-27acl: API cleanupJakub Grajciar3-18/+14
2020-03-26acl: revert acl: api cleanupOle Trøan3-22/+19
2020-03-26acl: API cleanupJakub Grajciar3-47/+45
2020-03-21libmemif: don't consume rx queue interrupt, if memif_rx_burst failsJan Cavojsky3-5/+16
2020-03-18build: add snap packaging (experimental)Dave Barach2-0/+66
2020-03-16vxlan: vxlan/vxlan.api API cleanupJakub Grajciar2-36/+49
2020-03-06misc: Fix vpp-selinux-policy dependency on CentOS 8Renato Botelho do Couto1-1/+6
2020-02-26lldp: API cleanupJakub Grajciar2-10/+8
2020-02-26span: API cleanupJakub Grajciar1-9/+5
2020-02-05stats: fix state counter removalVladimir Isaev2-13/+9
2020-02-05misc: add new type for commit messageMohsin Kazmi1-1/+1
2020-01-30misc: deprecate dpdk hqosDamjan Marion6-0/+3523
2020-01-30misc: deprecate netmap and ixge driversDamjan Marion13-0/+6398
2020-01-30misc: move configs to extras/configsDamjan Marion8-0/+0
2020-01-27classify: pcap / packet trace debug CLI bugsDave Barach1-1/+3
2020-01-27libmemif: memif_control_fd_update always pass context from libmemif_mainJakub Grajciar3-17/+23
2020-01-03build: Fix Subject-line feature list extractionJon Loeliger1-1/+2
2019-12-19bash: add -j <jobs> option to vpp-make-testDave Wallace1-7/+18
2019-12-17misc: Add CentOS 8 package supportRenato Botelho do Couto1-4/+10
2019-12-17build: export vapi generation in vpp-devOliver Giles1-0/+3
2019-12-17ip: Protocol Independent IP NeighborsNeale Ranns13-35/+45
2019-12-11devices: tap API cleanupJakub Grajciar2-19/+18
2019-12-05classify: vpp packet tracer supportDave Barach1-0/+20
2019-12-04vom: get interface type from vpp device typeMohsin Kazmi2-22/+21
2019-11-20bash: vpp-make-test bash functionDave Wallace1-0/+140
2019-11-15build: make checkstyle-* targets and cleanupDave Wallace1-0/+3
2019-11-06misc: add lcov scripts, README.mdDave Barach3-0/+62
2019-11-05misc: Fix python scripts shebang lineRenato Botelho do Couto2-2/+2
2019-11-05libmemif: reset number of queues on disconnectJakub Grajciar1-9/+6
2019-10-30vpp_config: fix typos in templatesPaul Vinciguerra2-3/+3
2019-10-10http_static: add .json contentDave Barach1-0/+2
2019-10-09docs: Add macos build documentationNathan Skrzypczak2-0/+91
2019-10-03emacs: track improvements in vppapigenDave Barach7-270/+17
2019-10-03dhcp: API cleanupJakub Grajciar2-6/+8
2019-09-18builtinurl: initial working attemptDave Barach2-1/+84
2019-09-11bonding: API cleanupJakub Grajciar1-2/+2
2019-09-10misc: clean up "pcap [rx|tx] trace" debug CLIDave Barach1-0/+34
2019-09-09libmemif: prevent crash in case of invalid connection handleJakub Grajciar1-9/+31
2019-09-07ip: fix udp/tcp checksum corner casesDave Barach1-0/+276
2019-09-03api: enforce vla is last and fixed string typeOle Troan3-7/+7
2019-08-21libmemif: introduce 'memif_per_thread_' namespaceJakub Grajciar9-113/+1314
2019-08-20api: Cleanup APIs interface.apiJakub Grajciar4-15/+19
2019-08-12papi: Revert vpp-api-python to py2, add py3 pkgIan Wells1-2/+29
2019-08-10http_static: tls supportDave Barach2-0/+13
2019-08-07vom: export/install cmake filesNeale Ranns6-1/+169
2019-07-31qos: Store functionNeale Ranns7-1/+653
2019-07-26libmemif: fix autoconnectJakub Grajciar1-4/+4
2019-07-26dhcp ip: DSCP settings for transmitted DHCP packetsNeale Ranns8-17/+174
span> "\n%Utos 0x%02x, ttl %d, length %d, checksum 0x%04x", format_white_space, indent, ip->tos, ip->ttl, clib_net_to_host_u16 (ip->length), clib_net_to_host_u16 (ip->checksum)); /* Check and report invalid checksums. */ { u16 c = ip4_header_checksum (ip); if (c != ip->checksum) s = format (s, " (should be 0x%04x)", clib_net_to_host_u16 (c)); } { u32 f = clib_net_to_host_u16 (ip->flags_and_fragment_offset); u32 o; s = format (s, "\n%Ufragment id 0x%04x", format_white_space, indent, clib_net_to_host_u16 (ip->fragment_id)); /* Fragment offset. */ o = 8 * (f & 0x1fff); f ^= o; if (o != 0) s = format (s, " offset %d", o); if (f != 0) { s = format (s, ", flags "); #define _(l) if (f & IP4_HEADER_FLAG_##l) s = format (s, #l); _(MORE_FRAGMENTS); _(DONT_FRAGMENT); _(CONGESTION); #undef _ } } /* Recurse into next protocol layer. */ if (max_header_bytes != 0 && header_bytes < max_header_bytes) { ip_main_t *im = &ip_main; ip_protocol_info_t *pi = ip_get_protocol_info (im, ip->protocol); if (pi && pi->format_header) s = format (s, "\n%U%U", format_white_space, indent - 2, pi->format_header, /* next protocol header */ (void *) ip + header_bytes, max_header_bytes - header_bytes); } return s; } /* Parse an IP4 header. */ uword unformat_ip4_header (unformat_input_t * input, va_list * args) { u8 **result = va_arg (*args, u8 **); ip4_header_t *ip; int old_length; /* Allocate space for IP header. */ { void *p; old_length = vec_len (*result); vec_add2 (*result, p, sizeof (ip4_header_t)); ip = p; } memset (ip, 0, sizeof (ip[0])); ip->ip_version_and_header_length = IP4_VERSION_AND_HEADER_LENGTH_NO_OPTIONS; if (!unformat (input, "%U: %U -> %U", unformat_ip_protocol, &ip->protocol, unformat_ip4_address, &ip->src_address, unformat_ip4_address, &ip->dst_address)) return 0; /* Parse options. */ while (1) { int i, j; if (unformat (input, "tos %U", unformat_vlib_number, &i)) ip->tos = i; else if (unformat (input, "ttl %U", unformat_vlib_number, &i)) ip->ttl = i; else if (unformat (input, "fragment id %U offset %U", unformat_vlib_number, &i, unformat_vlib_number, &j)) { ip->fragment_id = clib_host_to_net_u16 (i); ip->flags_and_fragment_offset |= clib_host_to_net_u16 ((i / 8) & 0x1fff); } /* Flags. */ else if (unformat (input, "mf") || unformat (input, "MF")) ip->flags_and_fragment_offset |= clib_host_to_net_u16 (IP4_HEADER_FLAG_MORE_FRAGMENTS); else if (unformat (input, "df") || unformat (input, "DF")) ip->flags_and_fragment_offset |= clib_host_to_net_u16 (IP4_HEADER_FLAG_DONT_FRAGMENT); else if (unformat (input, "ce") || unformat (input, "CE")) ip->flags_and_fragment_offset |= clib_host_to_net_u16 (IP4_HEADER_FLAG_CONGESTION); /* Can't parse input: try next protocol level. */ else break; } /* Fill in checksum. */ ip->checksum = ip4_header_checksum (ip); /* Recurse into next protocol layer. */ { ip_main_t *im = &ip_main; ip_protocol_info_t *pi = ip_get_protocol_info (im, ip->protocol); if (pi && pi->unformat_header) { if (!unformat_user (input, pi->unformat_header, result)) return 0; /* Result may have moved. */ ip = (void *) *result + old_length; } } /* Fill in IP length. */ ip->length = clib_host_to_net_u16 (vec_len (*result) - old_length); return 1; } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */