Re: [Intel-wired-lan] [net-next] igb: add function to set I210 transmit mode
From: John Fastabend <john.fastabend@gmail.com>
Date: 2016-08-14 08:29:40
Also in:
intel-wired-lan
On 16-08-13 08:27 AM, Alexander Duyck wrote:
On Tue, Aug 9, 2016 at 11:48 PM, Gangfeng [off-list ref] wrote:quoted
From: Gangfeng Huang <redacted> I210 supports two transmit modes, legacy and Qav. The transmit mode is configured in TQAVCTRL.QavMode register. Before this patch igb driver only support legacy mode. This patch makes it possible to configure the transmit mode. Example: Get the transmit mode: $ echo /sys/class/net/eth0/qav_mode 0 Set transmit mode to qav mode $ echo 1 > /sys/class/net/eth0/qav_mode Tested: Setting /sys/class/net/eth0/qav_mode to Qav mode, 1) Switch back and forth between Qav mode and legacy mode 2) Send/recv packets in both mode. Signed-off-by: Gangfeng Huang <redacted>I really don' think this patch is going to work. If you are going to implement something like this and have a hope to get it accepted into the Linux kernel you need to come up with a solution that will work fore more than this one device. We don't want the drivers having to carry around their own sysfs controls for things that really are not proprietary to the device. There needs to be a generic kernel interface for this. The fact is something like QAV more than likely exists on other devices as well so it may be worth while to look into seeing if you could come up with some way of interfacing this with either ethtool ,iproute2, or maybe even the DCB/LLDP utilities since this is essentially splitting the Tx into two separate traffic classes. Also for these kind of patches it would be best to include the netdev mailing list. That way it can be reviewed by a wider audience and you are much more likely to get this accepted upstream rather than have it rejected when Jeff Kirsher attempts to submit it.
Take a look at ./net/sched/sch_mqprio.c and the ndo op setup_tc. Multiple folks have been talking about adding support for this and I think a lot of the bits you need might be there. .John