Lines Matching +full:charge +full:- +full:ctrl +full:- +full:value

4  * Unified network-device I/O interface for Xen guest OSes.
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
24 * Copyright (c) 2003-2004, Keir Fraser
40 * negotiate this value. However we cannot fix all possible
41 * frontends, so we need to define a value which states the minimum
44 * The minimum value derives from older Linux kernel's MAX_SKB_FRAGS
47 * send a valid packet using slots up to this value.
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
74 * the directory for that vif, and set its value to the maximum supported
77 * key "multi-queue-num-queues", set to the number they wish to use, which
78 * must be greater than zero, and no more than the value reported by the backend
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
145 * sample the value on this state transition and any subsequent change in
146 * value will have no effect. However, if the backend also advertises
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/vif/<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>
201 * this feature). If this node is present, then a value of "0" should be
203 * value of "1" should be interpreted as the link being up (carrier
211 * The toolstack may set a value of MTU for the frontend by setting the
212 * /local/domain/<domid>/device/vif/<vif>/mtu node with the MTU value in
213 * octets. If this node is absent the frontend should assume an MTU value
214 * of 1500 octets. A frontend is also at liberty to ignore this value so
225 * sub-array of 'Array' containing bytes X thru Y inclusive, and '+' is
298 * (Buffer[] and Key[] are treated as shift-registers where the MSB of
299 * Buffer/Key[0] is considered 'left-most' and the LSB of Buffer/Key[N-1]
300 * is the 'right-most').
302 * Value = 0
304 * If (left-most bit of Buffer[] is 1)
305 * Value ^= left-most 32 bits of Key[]
322 /* Pre-load prefix with the first 8 bytes of the key */ in xen_netif_toeplitz_hash()
340 * 'prefix' has now been left-shifted by 8, so in xen_netif_toeplitz_hash()
359 * +-----+-----+-----+-----+-----+-----+-----+-----+
361 * +-----+-----+-----+-----+-----+-----+-----+-----+
363 * +-----+-----+-----+-----+-----------------------+
396 * +-----+-----+-----+-----+-----+-----+-----+-----+
398 * +-----+-----+-----+-----+-----+-----+-----+-----+
400 * +-----+-----+-----+-----+
438 * +-----+-----+-----+-----+-----+-----+-----+-----+
440 * +-----+-----+-----+-----+-----+-----+-----+-----+
465 * --------------------------------------
472 * data[0] = a XEN_NETIF_CTRL_HASH_ALGORITHM_* value
478 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
480 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - The algorithm is not
482 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
489 * ----------------------------------
503 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not supported
504 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
511 * ----------------------------------
518 * former only calculated for non-TCP packets.
529 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
531 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - One or more flag
532 * value is invalid or
534 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
543 * --------------------------------
558 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
560 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Key size is invalid
561 * XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW - Key size is larger
564 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
574 * The grant reference may be read-only and must remain valid until
578 * -----------------------------------------
593 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not supported
594 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
601 * -------------------------------------
618 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
620 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Table size is invalid
621 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
628 * ------------------------------------
631 * hash value to queue number. The backend should calculate the hash from
639 * data[0] = grant reference of page containing the mapping (sub-)table
641 * data[1] = size of (sub-)table in entries
642 * data[2] = offset, in entries, of sub-table within overall table
646 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
648 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Table size or content
650 * XEN_NETIF_CTRL_STATUS_BUFFER_OVERFLOW - Table size is larger
653 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
659 * +-----+-----+-----+-----+-----+-----+-----+-----+
661 * +-----+-----+-----+-----+-----+-----+-----+-----+
665 * +-----+-----+-----+-----+-----+-----+-----+-----+
666 * | mapping[N-2] | mapping[N-1] |
667 * +-----+-----+-----+-----+-----+-----+-----+-----+
671 * "multi-queue-num-queues" (see above).
673 * mapped by a single grant reference. Thus sub-tables within a
675 * with differing offset values. Specifying a new sub-table does not
677 * The grant reference may be read-only and must remain valid until
681 * -----------------------------------------
695 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
697 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - The queue index is
699 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
704 * ------------------------------------
719 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
721 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Operation failed
722 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
732 * ------------------------------------
747 * status = XEN_NETIF_CTRL_STATUS_NOT_SUPPORTED - Operation not
749 * XEN_NETIF_CTRL_STATUS_INVALID_PARAMETER - Operation failed
750 * XEN_NETIF_CTRL_STATUS_SUCCESS - Operation successful
771 * This is the 'wire' format for transmit (frontend -> backend) packets:
773 * Fragment 1: netif_tx_request_t - flags = NETTXF_*
775 * [Extra 1: netif_extra_info_t] - (only if fragment 1 flags include
778 * [Extra N: netif_extra_info_t] - (only if extra N-1 flags include
781 * Fragment N: netif_tx_request_t - (only if fragment N-1 flags include
782 * NETTXF_more_data - flags on preceding
790 * (backend -> frontend) packets. Specifically, in a multi-fragment
798 * ------------------------------------
801 * +-----+-----+-----+-----+-----+-----+-----+-----+
803 * +-----+-----+-----+-----+-----+-----+-----+-----+
805 * +-----+-----+-----+-----+
814 * ---------------------------------
817 * +-----+-----+-----+-----+-----+-----+-----+-----+
819 * +-----+-----+-----+-----+-----+-----+-----+-----+
821 * +-----+-----+-----+-----+
829 * This is the 'wire' format for receive (backend -> frontend) packets:
831 * Fragment 1: netif_rx_request_t - flags = NETRXF_*
833 * [Extra 1: netif_extra_info_t] - (only if fragment 1 flags include
836 * [Extra N: netif_extra_info_t] - (only if extra N-1 flags include
839 * Fragment N: netif_rx_request_t - (only if fragment N-1 flags include
840 * NETRXF_more_data - flags on preceding
848 * (frontend -> backend) packets. Specifically, in a multi-fragment
855 * -------------------------------
858 * +-----+-----+-----+-----+-----+-----+-----+-----+
860 * +-----+-----+-----+-----+-----+-----+-----+-----+
866 * ---------------------------------
869 * +-----+-----+-----+-----+-----+-----+-----+-----+
871 * +-----+-----+-----+-----+-----+-----+-----+-----+
876 * status: -ve: NETIF_RSP_*; +ve: Rx'ed pkt size.
902 * -------------------------------
907 * +-----+-----+-----+-----+-----+-----+-----+-----+
909 * +-----+-----+-----+-----+-----+-----+-----+-----+
911 * +-----+-----+-----+-----+
922 * +-----+-----+-----+-----+-----+-----+-----+-----+
924 * +-----+-----+-----+-----+-----+-----+-----+-----+
940 * +-----+-----+-----+-----+-----+-----+-----+-----+
942 * +-----+-----+-----+-----+-----+-----+-----+-----+
956 * +-----+-----+-----+-----+-----+-----+-----+-----+
957 * |type |flags|htype| alg |LSB ---- value ---- MSB|
958 * +-----+-----+-----+-----+-----+-----+-----+-----+
962 * htype: Hash type (one of _XEN_NETIF_CTRL_HASH_TYPE_* - see above)
964 * XEN_NETIF_CTRL_HASH_TYPE_ALGORITHM_* - see above)
965 * value: Hash value
995 #define XEN_NETIF_EXTRA_TYPE_NONE (0) /* Never used - invalid */
1031 uint8_t value[4]; member
1086 #define NETIF_RSP_DROPPED -2
1087 #define NETIF_RSP_ERROR -1
1097 * c-file-style: "BSD"
1098 * c-basic-offset: 4
1099 * tab-width: 4
1100 * indent-tabs-mode: nil