If the mac address of the packet does not match with the mac address
of the physical interface in which the packet came, just drop the packet.

Other than broadcast and multicast macs, the mac address of the packet
will not match with that of the interface typically when the interface goes
into promiscuous mode. When in promiscuous mode, vrouter will forward all
the packets that it receives from the physical interface. This situation
takes an ugly turn when the switch broadcasts unknown unicast packets and
all the computes receives those packets and starts forwarding, resulting
in a storm.

[ Adding Centos bits ]

Change-Id: Ic756af6856f3c0b31ac9e7e5baadcf0da413f3fd
Closes-Bug: 1350774
modify vr_compat.h to compile on centos 6.5

Change-Id: Iea0183a9730ebe6397cafac38a1b08c6e2065997
In the pull inner header functions, get the outer ip header pointer with
the help of pkt_network_header rather than as an argument from parent
functions

When we receive an MPLSoUDP encapsulated packet, we pull till the end of
inner transport header to a contiguous buffer. As part of that we also do
checksum verification, if hardware has not done verification. To verify
checksum, ip header is needed and the header pointer is passed to checksum
verification functions. However, in case the headers are in different buffers
and the pull actually pulls data from different buffers, the ip pointer will
not be valid, since pulls can realloc buffers and hence can cause issues.

Closes Bug: 1352294

Change-Id: I918cd6c3046078abf07981e2438f2d11e914ac8a
rebased and resubmitted
rebased and resubmitted