net: ethernet: Add 802.1Qav settings to eth mgmt api

This commit adds a possibility to use Qav (credit-based shaping) in the
ethernet drivers.

There are two parameters exposed through the mgmt api: deltaBandwidth
and idleSlope.

Signed-off-by: Tomasz Gorochowik <tgorochowik@antmicro.com>
This commit is contained in:
Tomasz Gorochowik 2018-05-16 15:46:17 +02:00 committed by Anas Nashif
commit 226fa97304
3 changed files with 58 additions and 0 deletions

View file

@ -38,6 +38,8 @@ enum net_request_ethernet_cmd {
NET_REQUEST_ETHERNET_CMD_SET_LINK,
NET_REQUEST_ETHERNET_CMD_SET_DUPLEX,
NET_REQUEST_ETHERNET_CMD_SET_MAC_ADDRESS,
NET_REQUEST_ETHERNET_CMD_SET_QAV_DELTA_BANDWIDTH,
NET_REQUEST_ETHERNET_CMD_SET_QAV_IDLE_SLOPE,
};
#define NET_REQUEST_ETHERNET_SET_AUTO_NEGOTIATION \
@ -60,7 +62,18 @@ NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_ETHERNET_SET_DUPLEX);
NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_ETHERNET_SET_MAC_ADDRESS);
#define NET_REQUEST_ETHERNET_SET_QAV_DELTA_BANDWIDTH \
(_NET_ETHERNET_BASE | NET_REQUEST_ETHERNET_CMD_SET_QAV_DELTA_BANDWIDTH)
NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_ETHERNET_SET_QAV_DELTA_BANDWIDTH);
#define NET_REQUEST_ETHERNET_SET_QAV_IDLE_SLOPE \
(_NET_ETHERNET_BASE | NET_REQUEST_ETHERNET_CMD_SET_QAV_IDLE_SLOPE)
NET_MGMT_DEFINE_REQUEST_HANDLER(NET_REQUEST_ETHERNET_SET_QAV_IDLE_SLOPE);
struct net_eth_addr;
struct ethernet_qav_queue_param;
struct ethernet_req_params {
union {
@ -74,6 +87,8 @@ struct ethernet_req_params {
} l;
struct net_eth_addr mac_address;
struct ethernet_qav_queue_param qav_queue_param;
};
};