Socket option to configure Ethernet PCP / CoS per-flow
Ryan Stone
rysto32 at gmail.com
Thu Sep 24 21:31:21 UTC 2020
On Fri, Sep 11, 2020 at 12:33 PM Scheffenegger, Richard
<Richard.Scheffenegger at netapp.com> wrote:
>
> 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
>
> _______________________________________________
> freebsd-transport at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-transport
> To unsubscribe, send any mail to "freebsd-transport-unsubscribe at freebsd.org"
Hi Richard,
At $WORK we're running into situations where PFC support would be very
useful, so I think that this would be a good thing to add. I have a
question: does your work also communicate the priority value for an
mbuf down to the Ethernet driver, so that it can put the packet in the
proper queue?
More information about the freebsd-net
mailing list