]> xenbits.xensource.com Git - people/iwj/xen.git/commitdiff
netif: define XEN_NETIF_NR_SLOTS_MIN in public header
authorWei Liu <wei.liu2@citrix.com>
Tue, 7 May 2013 14:54:56 +0000 (16:54 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 7 May 2013 14:54:56 +0000 (16:54 +0200)
Xen network protocol has implicit dependency on MAX_SKB_FRAGS. In order to
remove dependency on MAX_SKB_FRAGS, we derive a constant from historical
MAX_SKB_FRAGS for future reference.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
xen/include/public/io/netif.h

index ccde53b3afbc5e0416bd0dc406918af23270bd9a..9664998f05cb3e08e5948112f868ff085000bd05 100644 (file)
 #include "ring.h"
 #include "../grant_table.h"
 
+/*
+ * Older implementation of Xen network frontend / backend has an
+ * implicit dependency on the MAX_SKB_FRAGS as the maximum number of
+ * ring slots a skb can use. Netfront / netback may not work as
+ * expected when frontend and backend have different MAX_SKB_FRAGS.
+ *
+ * A better approach is to add mechanism for netfront / netback to
+ * negotiate this value. However we cannot fix all possible
+ * frontends, so we need to define a value which states the minimum
+ * slots backend must support.
+ *
+ * The minimum value derives from older Linux kernel's MAX_SKB_FRAGS
+ * (18), which is proved to work with most frontends. Any new backend
+ * which doesn't negotiate with frontend should expect frontend to
+ * send a valid packet using slots up to this value.
+ */
+#define XEN_NETIF_NR_SLOTS_MIN 18
+
 /*
  * Notifications after enqueuing any type of message should be conditional on
  * the appropriate req_event or rsp_event field in the shared ring.