/ / Ustawienie CoS (PCP, 802.1P) w ramce Ethernet - c, linux, gniazda

Ustawianie CoS (PCP, 802.1P) w ramce Ethernet - c, Linux, gniazda

Czy w jakiś sposób mogę manipulować wartością Priority Code Point (PCP) pole w ramce Ethernet z mojej aplikacji (np. przy użyciu setsockopt())? Chciałbym uniknąć hacków niskiego poziomu z tworzeniem ramki Ethernet od podstaw.

Przeszukałem strony podręcznika socket(7) i ip(7) ale nie ma możliwości sterowania polami ramek Ethernet.

Jeśli jest to istotne, potrzebuję go do gniazda TCP.

Odpowiedzi:

4 dla odpowiedzi № 1

Możesz ustawić pole priorytetu vlan za pomocą sockopt ():

int priority = 7;
setsockopt(sfd, SOL_SOCKET, SO_PRIORITY, &priority, sizeof(priority));

W pliku net / 8021q / vlan_dev.c widać, że pole skb-> priorytet jest używane dla VLAN 802.1Q TCI ...


1 dla odpowiedzi nr 2

Na każdym urządzeniu VLAN są mapowania wejścia i wyjścia. Na przykład:

vconfig add eth0 333
vconfig set_egress_map eth0.333 2 4
vconfig set_egress_map eth0.333 3 5
cat /proc/net/vlan/eth0.333

Możesz zobaczyć odwzorowania na dwóch ostatnich liniach.