skb->tstamp = timeval_to_ktime(tv); mwifiex_queue_tx_pkt(priv, skb);return0; } 開發者ID:AICP,項目名稱:kernel_moto_shamu,代碼行數:63,代碼來源:main.c 示例2: ax25_transmit_buffer ▲點讚 6▼ voidax25_transmit_buffer(ax25_cb *ax25, struct sk_buff *skb,inttype){structsk_buff*sk...
ktime_t tstamp;#elseunion { ktime_t tstamp;structskb_mstamp skb_mstamp; };#endifstructsock *sk;structnet_device *dev;/** This is the control buffer. It is free to use for every * layer. Please put your private variables there. If you * want to keep them across layers you have ...
tcp_has_tx_tstamp(skb) || !skb_pure_zcopy_same(skb, next)) !skb_pure_zcopy_same(skb, next) || skb_frags_readable(skb) != skb_frags_readable(next)) return false;len -= skb->len; @@ -3264,6 +3265,8 @@ static bool tcp_can_collapse(const struct sock *sk, const struct sk...
seq = ntohl(th->seq);if(unlikely(skb_shinfo(gso_skb)->tx_flags & SKBTX_SW_TSTAMP)) tcp_gso_tstamp(segs, skb_shinfo(gso_skb)->tskey, seq, mss); newcheck = ~csum_fold((__force __wsum)((__force u32)th->check + (__force u32)delta));while(skb->next) { th->fin = th...
39 struct timeval tstamp ; //用于存放接受的数据包的到达时间; 40 41 __u8 local_df : 1 , //allow local fragmentaion; 42 cloned : 1 , // head may be cloned 43 ; 44 45 __u8 pkt_type : 3 , //数据包的类型; 46 fclone : 2, // struct sk_buff clone status ...
tcp_skb_pcount(skb));15tp =tcp_sk(sk);1617/*需要克隆*/18if(clone_it) {19skb_mstamp_get(&skb->skb_mstamp);20TCP_SKB_CB(skb)->tx.in_flight = TCP_SKB_CB(skb)->end_seq21- tp->snd_una;22tcp_rate_skb_sent(sk, skb);2324/*如果skb已经是被克隆过的,那么只能复制*/25if(...
__u32data_meta;__bpf_md_ptr(structbpf_flow_keys *, flow_keys);__u64tstamp;__u32wire_len;__u32gso_segs;__bpf_md_ptr(structbpf_sock *, sk);__u32gso_size;__u32:32; /* Padding, future use. */__u64hwtstamp;}; ...
5. //记录收包时间,netdev_tstamp_prequeue为0,表示可能有包延迟 6. net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb); 7. trace_netif_receive_skb(skb); //用于跟踪调试 8. orig_dev = skb->dev; //记录收包设备 9. /* 重置network_header字段 */ ...
head->tstamp = fq->q.stamp; ipv6_hdr(head)->payload_len = htons(payload_len); IP6CB(head)->nhoff = nhoff;/* Yes, and fold redundant checksum back. 8) */if(head->ip_summed == CHECKSUM_COMPLETE) head->csum = csum_partial(skb_network_header(head),skb_network_header_len(head)...
u32 tskey =0;structrt6_info*rt= (structrt6_info*)cork->dst;structipv6_txoptions*opt=v6_cork->opt;intcsummode = CHECKSUM_NONE;unsignedintmaxnonfragsize, headersize; skb =skb_peek_tail(queue);if(!skb) { exthdrlen = opt ? opt->opt_flen :0; ...