/* * netsniff-ng - the packet sniffing beast * Copyright 2009, 2010 Daniel Borkmann. * Copyright 2010 Emmanuel Roullit. * Subject to the GPL, version 2. */ #include #include #include /* for ntohs() */ #include "proto.h" #include "vlan.h" #include "dissector_eth.h" #include "pkt_buff.h" struct vlanhdr { uint16_t h_vlan_TCI; uint16_t h_vlan_encapsulated_proto; } __packed; static void vlan(struct pkt_buff *pkt) { uint16_t tci; struct vlanhdr *vlan = (struct vlanhdr *) pkt_pull(pkt, sizeof(*vlan)); if (vlan == NULL) return; tci = ntohs(vlan->h_vlan_TCI); tprintf(" [ VLAN "); tprintf("Prio (%d), ", vlan_tci2prio(tci)); tprintf("CFI (%d), ", vlan_tci2cfi(tci)); tprintf("ID (%d), ", vlan_tci2vid(tci)); tprintf("Proto (0x%.4x)", ntohs(vlan->h_vlan_encapsulated_proto)); tprintf(" ]\n"); pkt_set_dissector(pkt, ð_lay2, ntohs(vlan->h_vlan_encapsulated_proto)); } static void vlan_less(struct pkt_buff *pkt) { uint16_t tci; struct vlanhdr *vlan = (struct vlanhdr *) pkt_pull(pkt, sizeof(*vlan)); if (vlan == NULL) return; tci = ntohs(vlan->h_vlan_TCI); tprintf(" VLAN%d", (tci & 0x0FFF)); pkt_set_dissector(pkt, ð_lay2, ntohs(vlan->h_vlan_encapsulated_proto)); } struct protocol vlan_ops = { .key = 0x8100, .print_full = vlan, .print_less = vlan_less, }; orm> net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
path: root/net
AgeCommit message (Expand)AuthorFilesLines
2017-02-07net: pending_confirm is not used anymoreJulian Anastasov1-1/+0
2017-02-07net: use dst_confirm_neigh for UDP, RAW, ICMP, L2TPJulian Anastasov9-19/+44
2017-02-07net: add confirm_neigh method to dst_opsJulian Anastasov3-0/+54
2017-02-07tcp: replace dst_confirm with sk_dst_confirmJulian Anastasov3-14/+7
2017-02-07sctp: add dst_pending_confirm flagJulian Anastasov7-12/+31
2017-02-07net: add dst_pending_confirm flag to skbuffJulian Anastasov2-1/+5
2017-02-07sock: add sk_dst_pending_confirm flagJulian Anastasov1-0/+2
2017-02-07ipv6: sr: fix non static symbol warningsWei Yongjun1-4/+4
2017-02-07net/sched: act_mirred: remove duplicated include from act_mirred.cWei Yongjun1-2/+0
2017-02-07net: dsa: Add support for platform dataFlorian Fainelli1-18/+84
2017-02-07net: dsa: Rename and export dev_to_net_device()Florian Fainelli1-2/+3
2017-02-06bridge: fdb: write to used and updated at most once per jiffyNikolay Aleksandrov2-2/+4
2017-02-06bridge: move write-heavy fdb members in their own cache lineNikolay Aleksandrov1-4/+6
2017-02-06bridge: move to workqueue gcNikolay Aleksandrov10-23/+29
2017-02-06bridge: modify bridge and port to have often accessed fields in one cache lineNikolay Aleksandrov1-23/+20
2017-02-06net: dsa: introduce bridge notifierVivien Didelot2-11/+61
2017-02-06net: dsa: add switch notifierVivien Didelot5-0/+70
2017-02-06net: dsa: change state setter scopeVivien Didelot1-6/+9
2017-02-06net: dsa: rollback bridging on errorVivien Didelot1-1/+13
2017-02-06net: dsa: simplify netdevice events handlingVivien Didelot1-28/+16
2017-02-06net: dsa: move netdevice notifier registrationVivien Didelot3-10/+26
2017-02-06net-next: treewide use is_vlan_dev() helper function.Parav Pandit1-1/+2
2017-02-06sctp: process fwd tsn chunk only when prsctp is enabledXin Long1-0/+6
2017-02-06net: remove ndo_neigh_{construct, destroy} from stacked devicesIdo Schimmel