aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/buffer.h
AgeCommit message (Expand)AuthorFilesLines
2020-05-14nat: ED: store both thread&session idx in hashKlement Sekera1-1/+1
2020-04-24nat: make usage of vnet_buffer2 transparentKlement Sekera1-0/+6
2020-01-15ip: align reass.save_rewrite_lengthv20.05-rc0Klement Sekera1-4/+13
2020-01-03nat: use SVRKlement Sekera1-19/+26
2019-11-26fib: reduce save_rewrite_length to u8Klement Sekera1-2/+12
2019-10-22ip: reassembly: avoid corruption in vnet bufferKlement Sekera1-17/+18
2019-10-09mpls: support fragmentation of mpls output packetRajesh Goel1-0/+4
2019-09-26ip: add shallow virtual reassembly functionalityKlement Sekera1-7/+32
2019-07-22gso: Fix the l3 packet gso segment sizeMohsin Kazmi1-1/+4
2019-07-05sctp: move to plugins, disabled by defaultFlorin Coras1-14/+0
2019-06-21tcp: add option to pass opaque to next nodeFlorin Coras1-1/+5
2019-06-18ipsec: ipsec-tun protectNeale Ranns1-0/+1
2019-06-18ip: reassembly-separate feature and custom codeKlement Sekera1-2/+2
2019-06-06DVR: Control the reinject as L2 or L3 based on the output interface typeNeale Ranns1-1/+1
2019-06-06reassembly: support more custom options for appsKlement Sekera1-0/+1
2019-03-29IPSEC-GRE: fixes and API update to common types.Neale Ranns1-1/+0
2019-03-06GBP: use sclass in the DP for policyNeale Ranns1-5/+1
2019-03-04Hash and handoff reassembly fragmentsVijayabhaskar Katamreddy1-0/+2
2019-02-19tap gso: experimental supportAndrew Yourtchenko1-9/+26
2019-01-22GBP: Sclass to src-epg conversionsNeale Ranns1-1/+5
2019-01-02Revert "add ipsecmb plugin"Florin Coras1-4/+0
2019-01-02add ipsecmb pluginKlement Sekera1-0/+4
2018-12-04Add VNET_BUFFER_F_AVAIL definitionsDave Barach1-1/+25
2018-11-30Metadata / opaque formatting belongs in vppDave Barach1-22/+22
2018-09-27IPIP and IPv6 fragmentationOle Troan1-1/+0
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra1-4/+4
2018-09-10vxlan-gbp: Add support for vxlan gbpMohsin Kazmi1-1/+3
2018-08-03loop counter to prevent infiinte number of look ups per-packetNeale Ranns1-1/+3
2018-07-19Cleanup of handoff codeDamjan Marion1-15/+0
2018-07-02Fixing ip4-reassembly ip6-reassembly non feature node, next_node_index settingVijayabhaskar Katamreddy1-1/+0
2018-06-25MAP: Move MAP-E/T to a plugin.Ole Troan1-8/+0
2018-06-08Adding pad for reasm vnet_buffer reasm struct sothat adj_index is retainedVijayabhaskar Katamreddy1-0/+1
2018-06-04Remove unused GRE buffer meta-dataNeale Ranns1-6/+0
2018-05-17Packet generator: preserve pcap file timestampsDave Barach1-0/+5
2018-04-27A bit of buffer metadata reshuffling to accommodate flow_idDamjan Marion1-1/+2
2018-04-13GBP V2Neale Ranns1-1/+7
2018-03-21reassembly: feature/concurrencyKlement Sekera1-8/+17
2018-03-16QoS recording and markingNeale Ranns1-5/+21
2018-03-09MPLS Unifom modeNeale Ranns1-0/+2
2018-02-21SCTP: minor refactorMarco Varlese1-1/+1
2018-02-17SCTP: 'multi-home' supportMarco Varlese1-0/+1
2018-02-07Refactor vlib_buffer flagsDamjan Marion1-26/+7
2018-02-01IPv4/6 reassemblyKlement Sekera1-0/+12
2018-01-31Fix VNET_BUFFER_F_SPAN_CLONE flagDamjan Marion1-1/+1
2018-01-29DRAFT ip4/6_frag to support DPO Style based Next NodeVijayabhaskar Katamreddy1-0/+1
2018-01-24SCTP stack (RFC4960)Marco Varlese1-0/+13
2018-01-09DVR: run L3 output featuresNeale Ranns1-0/+24
2017-12-09BIER in non-MPLS netowrksNeale Ranns1-11/+9
2017-11-21dpdk: add l2_hdr_offset and l3_hdr_offset in vlib_buffer_tDamjan Marion1-15/+19
2017-11-09BIERNeale Ranns1-0/+12
ss="p">) hex_digit = c + 10 - 'A'; else if (c == ':' && n_colon < 2) n_colon++; else { unformat_put_input (input); break; } /* Too many hex quads. */ if (n_hex_quads >= ARRAY_LEN (hex_quads)) return 0; if (hex_digit < 16) { hex_quad = (hex_quad << 4) | hex_digit; /* Hex quad must fit in 16 bits. */ if (n_hex_digits >= 4) return 0; n_colon = 0; n_hex_digits++; } /* Save position of :: */ if (n_colon == 2) { /* More than one :: ? */ if (double_colon_index < ARRAY_LEN (hex_quads)) return 0; double_colon_index = n_hex_quads; } if (n_colon > 0 && n_hex_digits > 0) { hex_quads[n_hex_quads++] = hex_quad; hex_quad = 0; n_hex_digits = 0; } } if (n_hex_digits > 0) hex_quads[n_hex_quads++] = hex_quad; { word i; /* Expand :: to appropriate number of zero hex quads. */ if (double_colon_index < ARRAY_LEN (hex_quads)) { word n_zero = ARRAY_LEN (hex_quads) - n_hex_quads; for (i = n_hex_quads - 1; i >= (signed) double_colon_index; i--) hex_quads[n_zero + i] = hex_quads[i]; for (i = 0; i < n_zero; i++) hex_quads[double_colon_index + i] = 0; n_hex_quads = ARRAY_LEN (hex_quads); } /* Too few hex quads given. */ if (n_hex_quads < ARRAY_LEN (hex_quads)) return 0; for (i = 0; i < ARRAY_LEN (hex_quads); i++) result->as_u16[i] = clib_host_to_net_u16 (hex_quads[i]); return 1; } } u8 * format_ip4_address (u8 * s, va_list * args) { u8 *a = va_arg (*args, u8 *); return format (s, "%d.%d.%d.%d", a[0], a[1], a[2], a[3]); } u8 * format_ethernet_address (u8 * s, va_list * args) { u8 *a = va_arg (*args, u8 *); return format (s, "%02x:%02x:%02x:%02x:%02x:%02x", a[0], a[1], a[2], a[3], a[4], a[5]); } void vat_plugin_api_reference (void) { } /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */