|
@@ -229,6 +229,34 @@ struct ethtool_ringparam {
|
|
__u32 tx_pending;
|
|
__u32 tx_pending;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * struct ethtool_channels - configuring number of network channel
|
|
|
|
+ * @cmd: ETHTOOL_{G,S}CHANNELS
|
|
|
|
+ * @max_rx: Read only. Maximum number of receive channel the driver support.
|
|
|
|
+ * @max_tx: Read only. Maximum number of transmit channel the driver support.
|
|
|
|
+ * @max_other: Read only. Maximum number of other channel the driver support.
|
|
|
|
+ * @max_combined: Read only. Maximum number of combined channel the driver
|
|
|
|
+ * support. Set of queues RX, TX or other.
|
|
|
|
+ * @rx_count: Valid values are in the range 1 to the max_rx.
|
|
|
|
+ * @tx_count: Valid values are in the range 1 to the max_tx.
|
|
|
|
+ * @other_count: Valid values are in the range 1 to the max_other.
|
|
|
|
+ * @combined_count: Valid values are in the range 1 to the max_combined.
|
|
|
|
+ *
|
|
|
|
+ * This can be used to configure RX, TX and other channels.
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+struct ethtool_channels {
|
|
|
|
+ __u32 cmd;
|
|
|
|
+ __u32 max_rx;
|
|
|
|
+ __u32 max_tx;
|
|
|
|
+ __u32 max_other;
|
|
|
|
+ __u32 max_combined;
|
|
|
|
+ __u32 rx_count;
|
|
|
|
+ __u32 tx_count;
|
|
|
|
+ __u32 other_count;
|
|
|
|
+ __u32 combined_count;
|
|
|
|
+};
|
|
|
|
+
|
|
/* for configuring link flow control parameters */
|
|
/* for configuring link flow control parameters */
|
|
struct ethtool_pauseparam {
|
|
struct ethtool_pauseparam {
|
|
__u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
|
|
__u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
|
|
@@ -818,6 +846,9 @@ bool ethtool_invalid_flags(struct net_device *dev, u32 data, u32 supported);
|
|
* Returns a negative error code or zero.
|
|
* Returns a negative error code or zero.
|
|
* @set_rxfh_indir: Set the contents of the RX flow hash indirection table.
|
|
* @set_rxfh_indir: Set the contents of the RX flow hash indirection table.
|
|
* Returns a negative error code or zero.
|
|
* Returns a negative error code or zero.
|
|
|
|
+ * @get_channels: Get number of channels.
|
|
|
|
+ * @set_channels: Set number of channels. Returns a negative error code or
|
|
|
|
+ * zero.
|
|
*
|
|
*
|
|
* All operations are optional (i.e. the function pointer may be set
|
|
* All operations are optional (i.e. the function pointer may be set
|
|
* to %NULL) and callers must take this into account. Callers must
|
|
* to %NULL) and callers must take this into account. Callers must
|
|
@@ -891,6 +922,9 @@ struct ethtool_ops {
|
|
struct ethtool_rxfh_indir *);
|
|
struct ethtool_rxfh_indir *);
|
|
int (*set_rxfh_indir)(struct net_device *,
|
|
int (*set_rxfh_indir)(struct net_device *,
|
|
const struct ethtool_rxfh_indir *);
|
|
const struct ethtool_rxfh_indir *);
|
|
|
|
+ void (*get_channels)(struct net_device *, struct ethtool_channels *);
|
|
|
|
+ int (*set_channels)(struct net_device *, struct ethtool_channels *);
|
|
|
|
+
|
|
};
|
|
};
|
|
#endif /* __KERNEL__ */
|
|
#endif /* __KERNEL__ */
|
|
|
|
|
|
@@ -959,6 +993,8 @@ struct ethtool_ops {
|
|
|
|
|
|
#define ETHTOOL_GFEATURES 0x0000003a /* Get device offload settings */
|
|
#define ETHTOOL_GFEATURES 0x0000003a /* Get device offload settings */
|
|
#define ETHTOOL_SFEATURES 0x0000003b /* Change device offload settings */
|
|
#define ETHTOOL_SFEATURES 0x0000003b /* Change device offload settings */
|
|
|
|
+#define ETHTOOL_GCHANNELS 0x0000003c /* Get no of channels */
|
|
|
|
+#define ETHTOOL_SCHANNELS 0x0000003d /* Set no of channels */
|
|
|
|
|
|
/* compatibility with older code */
|
|
/* compatibility with older code */
|
|
#define SPARC_ETH_GSET ETHTOOL_GSET
|
|
#define SPARC_ETH_GSET ETHTOOL_GSET
|