* TCP Header*/structrte_tcp_hdr { rte_be16_t src_port;/**< TCP source port.*/rte_be16_t dst_port;/**< TCP destination port.*/rte_be32_t sent_seq;/**< TX data sequence number.*/rte_be32_t recv_ack;/**< RX data acknowledgment sequence number.*/uint8_t data_off;/**< ...
具体逻辑如下: 首先判断收到的TCP头部中是否设置了SYN标志位(通过与RTE_TCP_SYN_FLAG进行按位与操作)。 如果当前stream的状态为LN_TCP_STATUS_LISTEN,说明服务器处于监听状态,可以接受连接。 分配一个ln_tcp_fragment结构体,并进行初始化。 将目的端口和源端口从tcphdr中提取出来,并赋值给fragment的sport和dport成...
设置了RTE_TCP_ACK_FLAG和RTE_TCP_PSH_FLAG标志位,表示需要确认之前的ACK并且携带回显数据。再次从TCP头部中获取负载,并将其拷贝到分配的内存空间中。最后将该回显包加入发送缓冲区。 如果收到TCP ACK标志,可以在此处处理ACK确认相关逻辑。 如果收到TCP FIN标志,表示连接即将关闭,将状态设置为CLOSE_WAIT。 该函数...