Kasai Takanori
2008-Feb-20 07:37 UTC
[Xen-devel] About the specification of the transmission processing of netback driver
Hi All, Please teach us the specification of the transmission processing of netback driver. When the packet is transmitted by using VNIF on PV-domain and PV-ON-HVM, the data of SKB is fragmented. It is fragmented whenever the data of the packet is larger than that of 64 bytes. It seems like the specification from at first. Why is the packet fragmented by 64 bytes? Details are as follows: ・linux-2.6.18-xen.hg/drivers/xen/netback/netback.c ----------------------------------------------------------------------------- 1177 /* Called after netfront has transmitted */ 1178 static void net_tx_action(unsigned long unused) 1179 { ... 1285 data_len = (txreq.size > PKT_PROT_LEN && 1286 ret < MAX_SKB_FRAGS) ? 1287 PKT_PROT_LEN : txreq.size; 1288 1289 skb = alloc_skb(data_len + 16 + NET_IP_ALIGN, 1290 GFP_ATOMIC | __GFP_NOWARN); ... 1324 if (data_len < txreq.size) { 1325 skb_shinfo(skb)->nr_frags++; 1326 skb_shinfo(skb)->frags[0].page 1327 (void *)(unsigned long)pending_idx; 1328 } else { ----------------------------------------------------------------------------- 1285: When packet is 64 bytes or less, data_len is the sizes of the packet. But, it is 64 bytes that the packet is larger than 64 bytes 1324-1327: In a packet that is larger than 64 bytes, the remainder of the packet is fragmented. Best Regards -- Takanori Kasai _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel