aboutsummaryrefslogtreecommitdiffstats
path: root/src/vcl
AgeCommit message (Expand)AuthorFilesLines
2021-09-23vcl: grab wrk create lock soonerFlorin Coras1-3/+6
2021-09-10vcl: avoid duplicated events in epoll ltliuyacan1-4/+6
2021-09-10vcl: fix free segments assertFlorin Coras1-1/+1
2021-09-01vcl: ignore rx events for sessions in epoll lt listFlorin Coras1-2/+3
2021-08-30vcl: fix vlsh conversion errorliuyacan1-3/+1
2021-08-12session vcl: cert key add/del with socket apiFlorin Coras3-10/+117
2021-08-02vcl: fix sendto for dgramsliuyacan1-4/+4
2021-08-02vcl: fix sleep time in ldp_pselect()liuyacan1-1/+2
2021-07-31vcl: fix ldp for __recv_chk socket callsSivaprasad Tummala2-0/+17
2021-07-29vcl: move vls pool lock to process local stateFlorin Coras1-6/+7
2021-07-29vcl: vls cleanup and more docsFlorin Coras1-101/+167
2021-07-27vcl: configure the cert-key pair from appSivaprasad Tummala1-4/+4
2021-07-27vcl: fix some risk after fork()liuyacan1-9/+17
2021-07-25vcl: fix shutdown deadlock issueliuyacan1-1/+1
2021-07-22session vcl: explit mq indices in ctrl messagesFlorin Coras3-15/+16
2021-07-14vcl:fix segfault when unshare NO_MQ sessionliuyacan1-1/+2
2021-07-12session: api cleanupFilip Tehlar1-29/+42
2021-07-06vcl: fix packetdrill test errorwanghanlin1-1/+1
2021-07-06vcl: print current app state for timeoutwanghanlin1-2/+2
2021-07-06vcl: fix return value check for ldp_fd_to_vlshwanghanlin1-3/+3
2021-06-30vcl: coverity fixesFlorin Coras1-1/+1
2021-06-29vcl: improvements to epoll ltFlorin Coras3-52/+85
2021-06-29vcl: Don't use app_socket_api to notify VPP in parent when child exitedwanghanlin1-1/+5
2021-06-29vcl: Don't memset events to optimize CPU usagewanghanlin1-8/+6
2021-06-28vcl: epoll fix postponed evt handlingFlorin Coras1-6/+33
2021-06-24vcl: fix vcl_session_write_ready when connectingliuyacan1-0/+4
2021-06-22vcl: validate vep handle when copying sessions on forkwanghanlin1-0/+31
2021-06-22vcl: move child wrk cleanup from sighandler to vls_epoll_waitwanghanlin1-1/+42
2021-06-16vcl: fix fifo sharingFlorin Coras4-2/+26
2021-06-16vcl: fix worker cleanupFlorin Coras1-0/+7
2021-06-16vcl: basic support for epoll level-triggered evtsFlorin Coras3-5/+102
2021-06-14vcl: improve shutdown()liuyacan6-54/+40
2021-06-10vcl: touch fifo on epoll del only if session openFlorin Coras1-3/+6
2021-06-07vcl: accept zero length writesFlorin Coras1-7/+8
2021-06-07vcl: avoid multiple reads on peekFlorin Coras1-0/+4
2021-06-05vcl: epoll error handling fixes and improvementsFlorin Coras2-6/+22
2021-06-03vcl: avoid updating errno on ldp init checkFlorin Coras1-71/+43
2021-06-03session: lcl transport info on acceptFlorin Coras1-2/+2
2021-06-02vcl: ldp placeholder for SO_LINGERFlorin Coras1-0/+3
2021-05-26vppinfra: explicit blocking mode for sock connectsFlorin Coras1-1/+2
2021-05-25srtp: basic implementation based on libsrtp2Florin Coras3-1/+10
2021-05-14vcl: fix lookup listener assertliuyacan1-0/+6
2021-05-12session: support half-close connectionliuyacan6-1/+78
2021-05-06vcl: move tests to src/testsFlorin Coras1-872/+0
2021-05-06vcl: reduce iperf tests outputFlorin Coras1-8/+8
2021-05-01vcl: attr api to set endpt ext configFlorin Coras4-6/+25
2021-04-28vcl: fix epoll wait with indefinite timeoutFlorin Coras1-28/+16
2021-04-22vcl session: refactor passing of crypto contextFlorin Coras3-5/+30
2021-04-22vcl session: extended connect/listen configurationFlorin Coras3-0/+58
2021-04-15vcl: validate fs before cleanupFlorin Coras1-2/+5
m">/* Initialize IP header. */ ip_hdr = (struct ipv4_hdr *)(eth_hdr + 1); memset(ip_hdr, 0, sizeof(*ip_hdr)); ip_hdr->version_ihl = IP_VHL_DEF; ip_hdr->type_of_service = 0; ip_hdr->fragment_offset = 0; ip_hdr->time_to_live = IP_DEFTTL; ip_hdr->next_proto_id = IPPROTO_UDP; ip_hdr->packet_id = 0; ip_hdr->src_addr = rte_cpu_to_be_32(cfg_ip_src); ip_hdr->dst_addr = rte_cpu_to_be_32(cfg_ip_dst + next_flow); ip_hdr->total_length = RTE_CPU_TO_BE_16(pkt_size - sizeof(*eth_hdr)); ip_hdr->hdr_checksum = ip_sum((unaligned_uint16_t *)ip_hdr, sizeof(*ip_hdr)); /* Initialize UDP header. */ udp_hdr = (struct udp_hdr *)(ip_hdr + 1); udp_hdr->src_port = rte_cpu_to_be_16(cfg_udp_src); udp_hdr->dst_port = rte_cpu_to_be_16(cfg_udp_dst); udp_hdr->dgram_cksum = 0; /* No UDP checksum. */ udp_hdr->dgram_len = RTE_CPU_TO_BE_16(pkt_size - sizeof(*eth_hdr) - sizeof(*ip_hdr)); pkt->nb_segs = 1; pkt->pkt_len = pkt_size; pkt->ol_flags = ol_flags; pkt->vlan_tci = vlan_tci; pkt->vlan_tci_outer = vlan_tci_outer; pkt->l2_len = sizeof(struct ether_hdr); pkt->l3_len = sizeof(struct ipv4_hdr); pkts_burst[nb_pkt] = pkt; next_flow = (next_flow + 1) % cfg_n_flows; } nb_tx = rte_eth_tx_burst(fs->tx_port, fs->tx_queue, pkts_burst, nb_pkt); /* * Retry if necessary */ if (unlikely(nb_tx < nb_rx) && fs->retry_enabled) { retry = 0; while (nb_tx < nb_rx && retry++ < burst_tx_retry_num) { rte_delay_us(burst_tx_delay_time); nb_tx += rte_eth_tx_burst(fs->tx_port, fs->tx_queue, &pkts_burst[nb_tx], nb_rx - nb_tx); } } fs->tx_packets += nb_tx; #ifdef RTE_TEST_PMD_RECORD_BURST_STATS fs->tx_burst_stats.pkt_burst_spread[nb_tx]++; #endif if (unlikely(nb_tx < nb_pkt)) { /* Back out the flow counter. */ next_flow -= (nb_pkt - nb_tx); while (next_flow < 0) next_flow += cfg_n_flows; do { rte_pktmbuf_free(pkts_burst[nb_tx]); } while (++nb_tx < nb_pkt); } #ifdef RTE_TEST_PMD_RECORD_CORE_CYCLES end_tsc = rte_rdtsc(); core_cycles = (end_tsc - start_tsc); fs->core_cycles = (uint64_t) (fs->core_cycles + core_cycles); #endif } struct fwd_engine flow_gen_engine = { .fwd_mode_name = "flowgen", .port_fwd_begin = NULL, .port_fwd_end = NULL, .packet_fwd = pkt_burst_flow_gen, };