/*mac层报头的长度*/53hdr_len;/*用于clone时,表示clone的skb的头长度*/5455/*Following fields are _not_ copied in __copy_skb_header()56* Note that queue_mapping is here mostly to fill a hole.57*/58kmemcheck_bitfield_begin(flags1);59__u16 queue_mapping;6061/*if you move...
entry= macb_rx_ring_wrap(bp, queue->rx_prepared_head);/*Make hw descriptor updates visible to CPU*/rmb(); queue->rx_prepared_head++; desc=macb_rx_desc(queue, entry);if(!queue->rx_skbuff[entry]) {/*allocate sk_buff for this free entry in ring*/skb= netdev_alloc_skb(bp->dev...
55 /* Following fields are _not_ copied in __copy_skb_header() 56 * Note that queue_mapping is here mostly to fill a hole. 57 */ 58 kmemcheck_bitfield_begin(flags1); 59 __u16 queue_mapping; 60 61 /* if you move cloned around you also must adapt those constants */ 62 #ifdef...
goto copy_uaddr;if (!(flags & MSG_PEEK)) {spin_lock_irqsave(&sk->sk_receive_queue.lock, cpu_flags); sk_eat_skb(sk, skb);spin_unlock_irqrestore(&sk->sk_receive_queue.lock, cpu_flags);skb_unlink(skb, &sk->sk_receive_queue); kfree_skb(skb); ...
* @ooo_okay: allow the mapping of a socket to a queue to be changed @@ -791,10 +794,12 @@ struct sk_buff { 791794 fclone:2, 792795 peeked:1, 793796 head_frag:1, 794- pfmemalloc:1; 797+ pfmemalloc:1, 798+ pp_recycle:1;/* page_pool recycle indicator */ ...
struct sk_buff { struct sk_buff *next; // frag_list 通过next串联起来(下文会介绍frag_list) unsigned int len, // 线性区和非线性区数据总长(下文会详细介绍) data_len; // 非线性区的数据总长,包括frags和fraglist __u16 queue_mapping;//网络设备层(L2)选择该packet的发送Queue ID // 该Queue ID...
Linux内核协议栈skb成员 struct__sk_buff{ __u32 len; __u32 pkt_type; __u32 mark; __u32 queue_mapping; __u32 protocol; __u32 vlan_present; __u32 vlan_tci; __u32 vlan_proto; __u32 priority; __u32 ingress_ifindex; __u32 ifindex;...
__u16 tc_verd;/*traffic control verdict*/#endif#endif__u16 queue_mapping; kmemcheck_bitfield_begin(flags2); #ifdef CONFIG_IPV6_NDISC_NODETYPE __u8 ndisc_nodetype:2;#endif__u8 pfmemalloc:1; __u8 ooo_okay:1; __u8 RH_KABI_RENAME(l4_rxhash, l4_hash):1; ...