Lines Matching +full:sub +full:- +full:sampled
4 * Unified network-device I/O interface for Xen guest OSes.
24 * Copyright (c) 2003-2004, Keir Fraser
55 * feature 'feature-rx-notify' via xenbus. Otherwise the backend will assume
60 * "feature-split-event-channels" is introduced to separate guest TX
66 * "event-channel-tx" and "event-channel-rx" respectively. If frontend
67 * doesn't want to use this feature, it just writes "event-channel"
73 * If supported, the backend will write the key "multi-queue-max-queues" to
77 * key "multi-queue-num-queues", set to the number they wish to use, which
79 * in "multi-queue-max-queues".
82 * "feature-split-event-channels" may optionally be used when using
88 * For frontends requesting just one queue, the usual event-channel and
89 * ring-ref keys are written as before, simplifying the backend processing
91 * multi-queue feature, and one that does, but requested only one queue.
94 * event-channel (or event-channel-{tx,rx}) and {tx,rx}-ring-ref keys,
95 * instead writing those keys under sub-keys having the name "queue-N" where
98 * event channels must write the following set of queue-related keys:
100 * /local/domain/1/device/vif/0/multi-queue-num-queues = "2"
101 * /local/domain/1/device/vif/0/queue-0 = ""
102 * /local/domain/1/device/vif/0/queue-0/tx-ring-ref = "<ring-ref-tx0>"
103 * /local/domain/1/device/vif/0/queue-0/rx-ring-ref = "<ring-ref-rx0>"
104 * /local/domain/1/device/vif/0/queue-0/event-channel-tx = "<evtchn-tx0>"
105 * /local/domain/1/device/vif/0/queue-0/event-channel-rx = "<evtchn-rx0>"
106 * /local/domain/1/device/vif/0/queue-1 = ""
107 * /local/domain/1/device/vif/0/queue-1/tx-ring-ref = "<ring-ref-tx1>"
108 * /local/domain/1/device/vif/0/queue-1/rx-ring-ref = "<ring-ref-rx1"
109 * /local/domain/1/device/vif/0/queue-1/event-channel-tx = "<evtchn-tx1>"
110 * /local/domain/1/device/vif/0/queue-1/event-channel-rx = "<evtchn-rx1>"
125 * "feature-no-csum-offload" should be used to turn IPv4 TCP/UDP checksum
127 * "feature-ipv6-csum-offload" should be used to turn IPv6 TCP/UDP checksum
132 * "feature-gso-tcpv4" and "feature-gso-tcpv6" advertise the capability to
139 * "feature-multicast-control" and "feature-dynamic-multicast-control"
142 * it may set "request-multicast-control". If the backend only advertises
143 * "feature-multicast-control" then "request-multicast-control" must be set
147 * "feature-dynamic-multicast-control" then "request-multicast-control"
149 * watch the value and re-sample on watch events.
151 * If the sampled value of "request-multicast-control" is set then the
156 * containing XEN_NETIF_EXTRA_TYPE_MCAST_{ADD,DEL} extra-info fragments as
158 * Note that the filter list may be amended even if the sampled value of
159 * "request-multicast-control" is not set, however the filter should only
168 * significant amount of out-of-band data to be passed from frontend to
174 * /local/domain/X/backend/<domid>/<vif>/feature-ctrl-ring = "1"
178 * /local/domain/<domid>/device/vif/<vif>/ctrl-ring-ref = <gref>
179 * /local/domain/<domid>/device/vif/<vif>/event-channel-ctrl = <port>
199 * sub-array of 'Array' containing bytes X thru Y inclusive, and '+' is
272 * (Buffer[] and Key[] are treated as shift-registers where the MSB of
273 * Buffer/Key[0] is considered 'left-most' and the LSB of Buffer/Key[N-1]
274 * is the 'right-most').
278 * If (left-most bit of Buffer[] is 1)
279 * Value ^= left-most 32 bits of Key[]
295 /* Pre-load prefix with the first 8 bytes of the key */ in xen_netif_toeplitz_hash()
313 * 'prefix' has now been left-shifted by 8, so in xen_netif_toeplitz_hash()
332 * +-----+-----+-----+-----+-----+-----+-----+-----+
334 * +-----+-----+-----+-----+-----+-----+-----+-----+
336 * +-----+-----+-----+-----+-----------------------+
366 * +-----+-----+-----+-----+-----+-----+-----+-----+
368 * +-----+-----+-----+-----+-----+-----+-----+-----+
370 * +-----+-----+-----+-----+
397 * --------------------------------------
410 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
412 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - The algorithm is not
414 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
421 * ----------------------------------
435 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not supported
436 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
443 * ----------------------------------
450 * former only calculated for non-TCP packets.
461 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
463 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - One or more flag
466 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
475 * --------------------------------
490 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
492 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Key size is invalid
493 * XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW - Key size is larger
496 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
506 * The grant reference may be read-only and must remain valid until
510 * -----------------------------------------
525 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not supported
526 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
533 * -------------------------------------
550 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
552 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Table size is invalid
553 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
560 * ------------------------------------
571 * data[0] = grant reference of page containing the mapping (sub-)table
573 * data[1] = size of (sub-)table in entries
574 * data[2] = offset, in entries, of sub-table within overall table
578 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
580 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Table size or content
582 * XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW - Table size is larger
585 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
591 * +-----+-----+-----+-----+-----+-----+-----+-----+
593 * +-----+-----+-----+-----+-----+-----+-----+-----+
597 * +-----+-----+-----+-----+-----+-----+-----+-----+
598 * | mapping[N-2] | mapping[N-1] |
599 * +-----+-----+-----+-----+-----+-----+-----+-----+
603 * "multi-queue-num-queues" (see above).
605 * mapped by a single grant reference. Thus sub-tables within a
607 * with differing offset values. Specifying a new sub-table does not
609 * The grant reference may be read-only and must remain valid until
621 * This is the 'wire' format for transmit (frontend -> backend) packets:
623 * Fragment 1: xen_netif_tx_request_t - flags = XEN_NETTXF_*
625 * [Extra 1: xen_netif_extra_info_t] - (only if fragment 1 flags include
628 * [Extra N: xen_netif_extra_info_t] - (only if extra N-1 flags include
631 * Fragment N: xen_netif_tx_request_t - (only if fragment N-1 flags include
632 * XEN_NETTXF_more_data - flags on preceding
640 * (backend -> frontend) packets. Specifically, in a multi-fragment
648 * ------------------------------------
651 * +-----+-----+-----+-----+-----+-----+-----+-----+
653 * +-----+-----+-----+-----+-----+-----+-----+-----+
655 * +-----+-----+-----+-----+
664 * ---------------------------------
667 * +-----+-----+-----+-----+-----+-----+-----+-----+
669 * +-----+-----+-----+-----+-----+-----+-----+-----+
671 * +-----+-----+-----+-----+
679 * This is the 'wire' format for receive (backend -> frontend) packets:
681 * Fragment 1: xen_netif_rx_request_t - flags = XEN_NETRXF_*
683 * [Extra 1: xen_netif_extra_info_t] - (only if fragment 1 flags include
686 * [Extra N: xen_netif_extra_info_t] - (only if extra N-1 flags include
689 * Fragment N: xen_netif_rx_request_t - (only if fragment N-1 flags include
690 * XEN_NETRXF_more_data - flags on preceding
698 * (frontend -> backend) packets. Specifically, in a multi-fragment
705 * -------------------------------
708 * +-----+-----+-----+-----+-----+-----+-----+-----+
710 * +-----+-----+-----+-----+-----+-----+-----+-----+
716 * ---------------------------------
719 * +-----+-----+-----+-----+-----+-----+-----+-----+
721 * +-----+-----+-----+-----+-----+-----+-----+-----+
726 * status: -ve: XEN_NETIF_RSP_*; +ve: Rx'ed pkt size.
752 * -------------------------------
757 * +-----+-----+-----+-----+-----+-----+-----+-----+
759 * +-----+-----+-----+-----+-----+-----+-----+-----+
761 * +-----+-----+-----+-----+
772 * +-----+-----+-----+-----+-----+-----+-----+-----+
774 * +-----+-----+-----+-----+-----+-----+-----+-----+
790 * +-----+-----+-----+-----+-----+-----+-----+-----+
792 * +-----+-----+-----+-----+-----+-----+-----+-----+
806 * +-----+-----+-----+-----+-----+-----+-----+-----+
807 * |type |flags|htype| alg |LSB ---- value ---- MSB|
808 * +-----+-----+-----+-----+-----+-----+-----+-----+
812 * htype: Hash type (one of _XEN_NETIF_CTRL_HASH_TYPE_* - see above)
814 * XEN_NETIF_CTRL_HASH_TYPE_ALGORITHM_* - see above)
844 #define XEN_NETIF_EXTRA_TYPE_NONE (0) /* Never used - invalid */
933 #define XEN_NETIF_RSP_DROPPED -2
934 #define XEN_NETIF_RSP_ERROR -1