*/ if (icsk->icsk_ca_ops->flags & TCP_CONG_RTT_STAMP) __net_timestamp(skb); /*根据传递进来的clone_it参数来确定是否需要克隆待发送的报文。*/ if (likely(clone_it)) { /*如果skb已经被clone,则只能复制该skb的数据到新分配的skb中*/ if (unlikely(skb_cloned(skb))) skb = pskb_copy(...
*/ if(icsk->icsk_ca_ops->flags&TCP_CONG_RTT_STAMP) __net_timestamp(skb); /*根据传递进来的clone_it参数来确定是否需要克隆待发送的报文。*/ if(likely(clone_it)) { /*如果skb已经被clone,则只能复制该skb的数据到新分配的skb中*/ if(unlikely(skb_cloned(skb))) skb=pskb_copy(skb,gfp_ma...
ts = __packet_set_timestamp(po, ph, skb); __packet_set_status(po, ph, TP_STATUS_AVAILABLE | ts);if (!packet_read_pending(&po->tx_ring))complete(&po->skb_completion);complete(&po->skb_completion); }sock_wfree(skb);0 comments on commit 581073f Please sign in to comment. Fo...
5. struct net_device *dev; // 指向网桥设备的net_device{} 6. struct pcpu_sw_netstats __percpu *stats; // 统计值,TX/Rx Packet Byte之类 7. unsigned long options; //网桥的配置字段,包括对多播,vlan,stp等相应的配置 8. /* These fields are accessed on each packet */ 9. #ifdef CONFIG...
if (icsk->icsk_ca_ops->flags & TCP_CONG_RTT_STAMP) __net_timestamp(skb); /*根据传递进来的clone_it参数来确定是否需要克隆待发送的报文。*/ if (likely(clone_it)) { /*如果skb已经被clone,则只能复制该skb的数据到新分配的skb中*/