diff -up dhcp-4.3.1/common/lpf.c.vlan dhcp-4.3.1/common/lpf.c --- dhcp-4.3.1/common/lpf.c.vlan 2014-10-08 19:06:17.963118201 +0200 +++ dhcp-4.3.1/common/lpf.c 2014-10-08 19:07:17.086276536 +0200 @@ -543,6 +543,12 @@ ssize_t receive_packet (interface, buf, if (cmsg->cmsg_level == SOL_PACKET && cmsg->cmsg_type == PACKET_AUXDATA) { struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg); + /* if listening on plain interface we can see vlan traffic as well. + skip vlan traffic if tagged. If we are listening on vlan interfaces + as well we will see the traffic again but without the tag + */ + if (aux->tp_vlan_tci != 0) + return 0; nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY; } }