Не удается увидеть тег VLAN в крючках сетевого фильтра L3

#c #linux #linux-kernel #netfilter #vlan

Вопрос:

Что-то плохое происходит с моим skb , пока он проходит через сетевой стек Linux. Возможно, мне нужно проверить все зарегистрированные крючки, чтобы выяснить, есть ли проблема? Как я могу сделать это во время выполнения или при поиске по исходному коду Linux?

UPD: Я отправляю определенные пакеты с тегами vlan в свою систему. Я сбрасываю теги vlan всех входящих skb в rx_handler и в крюке Netfilter.
В rx_handler skb->vlan_tci все в порядке, но в Netfiltr крючок skb->vlan_tci равен нулю, поэтому я пытаюсь найти, где его можно испортить (вероятно, в другом крючке). Кстати, мой skb-это просто все входящие skb.

Комментарии:

1. Что вы подразумеваете под «моим скб» ?

2. Я отправляю пакеты с тегами vlan в свою систему. Я сбрасываю теги vlan всех входящих skb в rx_handler и в крюке netfilter, в rx_handler skb->vlan_tci в порядке, но в крюке netfiltr skb->>vlan_tci равен нулю, поэтому я пытаюсь найти, где он может быть испорчен (вероятно, в другом крюке). Итак, мой skb-это просто все входящие skb.

3. Вероятно, мне нужно место в ядре, где вызываются все крючки netfilter.

4. Какой именно метод ->rx_handler используется?

5. Немного странно, что вы видите skb->vlan_tci в rx_handler и не видите этого в крючках. Скорее всего, это было бы наоборот, потому что размечение vlan выполняется __netif_receive_skb_core() , поэтому vlan_tci , скорее всего, будет присутствовать в крючках.