Насколько мне известно, и картинки с гугла говорят о том же 802.1q заголовок вставляется между dst mac и ether type(тоесть где то в середине а не в конце).
При этом неуправляемые свитчи, мосты в линуксе прекрасно могут игнорировать это поле и обрабатывать трафик как трафик без vlan тэга.
Честно не очень силен в системном программировании, и не очень хочу идти читать учебник по С(хочу но не сейчас), но думал что там просто создается структурка с полями нужного размера, потом весь кадр считывается в структуру и все, в нужном поле нужная инфа.
Вопрос вот в чем - я неправильно понимаю процесс чтения или для просто для вланов специально делается проверка?
Расскажите пожалуйста детально этот процесс.