aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/tcp/tcp_input.c
AgeCommit message (Expand)AuthorFilesLines
2017-10-10session: add support for application namespacingFlorin Coras1-38/+50
2017-10-04[aarch64] Fixes CLI crashes on dpaa2 platform.Christophe Fontaine1-1/+1
2017-10-03tcp: updates to connection closing procedure (VPP-996)Florin Coras1-8/+12
2017-09-27Various fixes for issues found by Coverity (VPP-972)Chris Luke1-1/+2
2017-09-26tcp: update snd_nxt after congestion recoveryFlorin Coras1-0/+2
2017-09-25tcp: do not sample rtt for retransmitted segmentsFlorin Coras1-25/+27
2017-09-20tcp: add option to punt trafficPierre Pfister1-5/+17
2017-09-19session/tcp: improve preallocated segment handlingFlorin Coras1-39/+42
2017-09-12tcp: horizontal scaling improvmentsFlorin Coras1-58/+146
2017-08-30tcp: re-enable persist timer if no data available to sendFlorin Coras1-0/+1
2017-08-25TCP horizontal scalingDave Barach1-1/+5
2017-08-25tcp: retransmit and multi-buffer segment fixes and improvementsFlorin Coras1-11/+16
2017-08-16tcp: fix v6 sessionsroot1-15/+1
2017-08-15tcp: state machine improvementsFlorin Coras1-10/+20
2017-08-14TCP: Update time_now once per burstFlorin Coras1-1/+1
2017-08-11Fix tcp multi buffer segments retransmissionFlorin Coras1-11/+37
2017-08-02Fix tcp tx buffer allocationFlorin Coras1-0/+2
2017-07-30Make tcp active open data structures thread safeFlorin Coras1-15/+21
2017-07-25Cleanup/refactor session layer codeFlorin Coras1-1/+4
2017-07-21Improvements to tcp rx path and debuggingFlorin Coras1-66/+99
2017-07-15Fixes and improved tcp/session debuggingFlorin Coras1-35/+79
2017-07-11Horizontal (nSessions) scaling draftDave Barach1-34/+63
2017-06-19Overall tcp performance improvements (VPP-846)Florin Coras1-83/+110
2017-06-09Implement sack based tcp loss recovery (RFC 6675)Florin Coras1-186/+485
2017-05-20Improve session debuggingFlorin Coras1-9/+16
2017-05-18Improve sack bytes accounting and testingFlorin Coras1-18/+27
2017-05-16Fixes to tcp active opens and receptionDave Barach1-0/+5
2017-05-10Improve TCP option handling, VPP-757Florin Coras1-10/+37
2017-05-10Ignore data in RST segments, VPP-723Florin Coras1-15/+23
2017-05-09Add support for tcp/session buffer chainsFlorin Coras1-8/+8
2017-05-07Include TCP options in segment size computationFlorin Coras1-1/+5
2017-05-07Fix TCP loss recovery, VPP-745Florin Coras1-10/+25
2017-05-01TCP ooo reception fixesFlorin Coras1-26/+55
2017-04-25Session/tcp coverity fixesFlorin Coras1-96/+69
2017-04-25Add sack tx unit testFlorin Coras1-14/+28
2017-04-24Debug CLI to magically create / delete a TCP sessionDave Barach1-1/+1
2017-04-24Session layer improvementsFlorin Coras1-4/+4
2017-04-18Fix fifo ooo bugs and improve testingDave Barach1-9/+19
2017-04-14tcp: completed trace functionsClement Durand1-28/+72
2017-04-13Session layer refactoringFlorin Coras1-6/+1
2017-04-06Use thread local storage for thread indexDamjan Marion1-5/+5
2017-04-02TCP cc/window management fixes and debuggingFlorin Coras1-33/+35
2017-03-27TCP/session improvementsFlorin Coras1-180/+327
2017-03-13VPP-659 Improve tcp/session debugging and testingFlorin Coras1-22/+12
2017-03-10VPP-659 TCP improvementsFlorin Coras1-19/+44
2017-03-04Cleanup URI code and TCP bugfixingFlorin Coras1-22/+34
2017-03-01VPP-598: tcp stack initial commitDave Barach1-0/+2316
class="cp"> _(18, OFFLOAD_RSS_PCTYPE_V2, "rss-pctype-v2") \ _(19, OFFLOAD_RSS_PF, "rss-pf") \ _(20, OFFLOAD_ENCAP, "encap") \ _(21, OFFLOAD_ENCAP_CSUM, "encap-csum") \ _(22, OFFLOAD_RX_ENCAP_CSUM, "rx-encap-csum") \ _(23, OFFLOAD_ADQ, "offload-adq") typedef enum { #define _(a, b, c) VIRTCHNL_VF_##b = (1 << a), foreach_avf_vf_cap_flag #undef _ } avf_vf_cap_flag_t; typedef enum { VIRTCHNL_VSI_TYPE_INVALID = 0, VIRTCHNL_VSI_SRIOV = 6, } virtchnl_vsi_type_t; typedef enum { VIRTCHNL_VFR_INPROGRESS = 0, VIRTCHNL_VFR_COMPLETED, VIRTCHNL_VFR_VFACTIVE, } virtchnl_vfr_states_t; typedef struct { u16 vsi_id; u16 num_queue_pairs; virtchnl_vsi_type_t vsi_type; u16 qset_handle; u8 default_mac_addr[6]; } virtchnl_vsi_resource_t; typedef struct { u16 num_vsis; u16 num_queue_pairs; u16 max_vectors; u16 max_mtu; u32 vf_offload_flags; u32 rss_key_size; u32 rss_lut_size; virtchnl_vsi_resource_t vsi_res[1]; } virtchnl_vf_resource_t; #define foreach_virtchnl_event_code \ _(0, UNKNOWN) \ _(1, LINK_CHANGE) \ _(2, RESET_IMPENDING) \ _(3, PF_DRIVER_CLOSE) typedef enum { #define _(a,b) VIRTCHNL_EVENT_##b = (a), foreach_virtchnl_event_code #undef _ } virtchnl_event_codes_t; #define foreach_virtchnl_link_speed \ _(0, 2_5GB, "2.5 Gbps") \ _(1, 100MB, "100 Mbps") \ _(2, 1GB, "1 Gbps") \ _(3, 10GB, "10 Gbps") \ _(4, 40GB, "40 Gbps") \ _(5, 20GB, "20 Gbps") \ _(6, 25GB, "25 Gbps") \ _(7, 5GB, "5 Gbps") typedef enum { VIRTCHNL_LINK_SPEED_UNKNOWN = 0, #define _(a,b,c) VIRTCHNL_LINK_SPEED_##b = (1 << a), foreach_virtchnl_link_speed #undef _ } virtchnl_link_speed_t; typedef struct { virtchnl_event_codes_t event; union { struct { virtchnl_link_speed_t link_speed; u8 link_status; } link_event; struct { u32 link_speed; u8 link_status; } link_event_adv; } event_data; int severity; } virtchnl_pf_event_t; STATIC_ASSERT_SIZEOF (virtchnl_pf_event_t, 16); typedef struct { u32 major; u32 minor; } virtchnl_version_info_t; typedef struct { u16 flags; u16 opcode; u16 datalen; u16 retval; union { u32 cookie_hi; virtchnl_ops_t v_opcode; }; union { u32 cookie_lo; virtchnl_status_code_t v_retval; }; u32 param0; u32 param1; union { u32 param2; u32 addr_hi; }; union { u32 param3; u32 addr_lo; }; } avf_aq_desc_t; STATIC_ASSERT_SIZEOF (avf_aq_desc_t, 32); typedef struct { u16 vsi_id; u16 queue_id; u16 ring_len; u64 dma_ring_addr; u64 dma_headwb_addr; } virtchnl_txq_info_t; STATIC_ASSERT_SIZEOF (virtchnl_txq_info_t, 24); typedef struct { u16 vsi_id; u16 queue_id; u32 ring_len; u16 hdr_size; u16 splithdr_enabled; u32 databuffer_size; u32 max_pkt_size; u32 pad1; u64 dma_ring_addr; int rx_split_pos; u32 pad2; } virtchnl_rxq_info_t; STATIC_ASSERT_SIZEOF (virtchnl_rxq_info_t, 40); typedef struct { virtchnl_txq_info_t txq; virtchnl_rxq_info_t rxq; } virtchnl_queue_pair_info_t; typedef struct { u16 vsi_id; u16 num_queue_pairs; u32 pad; virtchnl_queue_pair_info_t qpair[1]; } virtchnl_vsi_queue_config_info_t; STATIC_ASSERT_SIZEOF (virtchnl_vsi_queue_config_info_t, 72); typedef struct { u16 vsi_id; u16 pad; u32 rx_queues; u32 tx_queues; } virtchnl_queue_select_t; STATIC_ASSERT_SIZEOF (virtchnl_queue_select_t, 12); typedef struct { u16 vsi_id; u16 vector_id; u16 rxq_map; u16 txq_map; u16 rxitr_idx; u16 txitr_idx; } virtchnl_vector_map_t; typedef struct { u16 num_vectors; virtchnl_vector_map_t vecmap[1]; } virtchnl_irq_map_info_t; STATIC_ASSERT_SIZEOF (virtchnl_irq_map_info_t, 14); typedef struct { u8 addr[6]; u8 pad[2]; } virtchnl_ether_addr_t; typedef struct { u16 vsi_id; u16 num_elements; virtchnl_ether_addr_t list[1]; } virtchnl_ether_addr_list_t; #define foreach_virtchnl_eth_stats \ _(rx_bytes) \ _(rx_unicast) \ _(rx_multicast) \ _(rx_broadcast) \ _(rx_discards) \ _(rx_unknown_protocol)\ _(tx_bytes) \ _(tx_unicast) \ _(tx_multicast) \ _(tx_broadcast) \ _(tx_discards) \ _(tx_errors) typedef struct { #define _(s) u64 s; foreach_virtchnl_eth_stats #undef _ } virtchnl_eth_stats_t; typedef struct { u16 vsi_id; u16 key_len; u8 key[1]; } virtchnl_rss_key_t; STATIC_ASSERT_SIZEOF (virtchnl_rss_key_t, 6); typedef struct { u16 vsi_id; u16 lut_entries; u8 lut[1]; } virtchnl_rss_lut_t; STATIC_ASSERT_SIZEOF (virtchnl_rss_lut_t, 6); /* VIRTCHNL_OP_REQUEST_QUEUES */ typedef struct { u16 num_queue_pairs; } virtchnl_vf_res_request_t; #endif /* AVF_VIRTCHNL_H */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */