[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.