Socket option to configure Ethernet PCP / CoS per-flow

Scheffenegger, Richard Richard.Scheffenegger at netapp.com
Fri Sep 11 16:33:21 UTC 2020


Hi,

Currently, upstream head has only an IOCTL API to set up interface-wide default PCP marking:

#define  SIOCGVLANPCP    SIOCGLANPCP     /* Get VLAN PCP */
#define   SIOCSVLANPCP    SIOCSLANPCP      /* Set VLAN PCP */

And the interface is via ifconfig <if> pcp <x>.

However, while this allows all traffic sent via a specific interface to be marked with a PCP (priority code point), it defeats the purpose of PFC (priority flow control) which works by individually pausing different queues of an interface, provided there is an actual differentiation of traffic into those various classes.

Internally, we have added a socket option (SO_VLAN_PCP) to change the PCP specifically for traffic associated with that socket, to be marked differently from whatever the interface default is (unmarked, or the default PCP).

Does the community see value in having such a socket option widely available? (Linux currently doesn't seem to have a per-socket option either, only a per-interface IOCTL API).

Best regards,

Richard Scheffenegger



More information about the freebsd-transport mailing list