Como o driver vlan passa as informações do vlan para o driver ethernet h / w?

2

Estou tentando implementar vlans em um destino programaticamente.

Mas primeiro eu queria configurar as vlans manualmente para ajudar a entender melhor a configuração do vlan. Então eu configurei uma vlan manualmente no meu sistema de desenvolvimento (ubuntu) usando a combinação de comandos vconfig / ifconfig, mas usar a mesma combinação de comando no destino desejado não funciona.

Ambos os sistemas usam o mesmo driver 8021q, portanto o método de informar o driver Ethernet de nível mais baixo da informação vlan deve ser o mesmo (eu acho). Depois de olhar para a fonte do driver vlan, parece que ele coleta a informação vlan e adiciona a informação a estrutura sk_buff que eventualmente é passada para o driver ethernet, mas não é óbvio onde a magia vlan deve acontecer (driver ethernet ou driver 8021q) .

Eu olhei para a fonte do driver ethernet do sistema de destino e ele suporta um método ioctl de configuração de uma vlan. Mas isso não parece a maneira convencional como o Linux configura uma vlan no driver ethernet.

Por qual mecanismo o driver vlan (8021q.ko) informa ao hardware Ethernet sobre uma vlan?

É uma chamada api especial para o driver ethernet para configurar uma vlan em hardware, ou o driver vlan deve estar adicionando as tags vlan ao pacote?

Qualquer informação sobre a implementação de vlan também seria útil.

    
por carlh 26.04.2017 / 22:31

0 respostas