Changes to accomodate drop reason for a flow, and display in flow utility.

Change-Id: I23da4c2b5eba49a53a5eb47c038d404f1cbe3984
(cherry picked from commit 522013cfc53859f26d2b569350901be98644d831)
Fix compilation failure for kernels above 3.13.11

skb_get_rxhash was renamed to skb_get_hash somewhere between 3.13.0
and 3.14.0. skb_get_rxhash does not exist in ubuntu sources for
3.13.0-32, for which the version code is 3.13.11. Make skb_get_rxhash
return skb_get_hash for versions above 3.13.11

Closes Bug:1359940

Change-Id: Icf617e0b616ef76f514212bd49546da25f0aa88f
Fix for bug https://bugs.launchpad.net/juniperopenstack/+bug/1362774. 1) When the DF bit is set in the packet from VM, vrouter Traps the packet to Agent. Agent expects the packet to be with ethernet header. But Vr_pcow() is removing the ethernet header for multicast packets leading to ICMP error not being generated by Agent. As a fix, vr_pcow() is modified to retain the ethernet header. 2) Removing the vr_palloc_head() from Multi_proto nexthop as this is no more required

Change-Id: I57ab54c81672e20f9e5e3ce275730a5e3875c258
Fixes memory leak when drop_stat messages processed

This patch fix a memory leak when drop stats messages
are processed. A temp alloc for aggregation was not freed.

Change-Id: I2f5991fc555843af87b43aec7662d384e6b74f9d
Closes-bug: #1373026
(cherry picked from commit b85be29d57fae111c9c6f3ded025d0a3c2145900)
Fix compilation failure for ubuntu 3.13.0-36-generic (and above)

From 3.13.0-36, ubuntu did

while keeping the kernel version the same as 3.13.0-32. The only option
that was left then was to check for definition of skb_get_rxhash

Closes Bug:1373574
Change-Id: Idd76936ee87904f37af17528dc9df88194fb2110
(cherry picked from commit c6bab0328707c3fe4d9ce8d18a73e9e40c1a0bc5)
Fix for https://bugs.launchpad.net/juniperopenstack/+bug/1372262 a separate port list of link local services in Vrouter, which will be loked up before handing over the packet to Flow processing after Receive NH. If the lookup fails, packet will not be subjected to any flow processing leading to a better perforance for Vhost non-link local packets. This database is built using flow entry addition by Agent

Change-Id: Iab701c55a7a0dbffc2d4a72f76b33c3c2717b9c2
Disable GSO on vhost0 as there are issues with agent restart (due to a
vrouter issue which results in skb gso_size being reset to 0 when packets
are trapped to the agent)

Change-Id: I9a638e03ac49ca723a8fa9141050c0e8de37ac14
Bug:#1381176 1) When vlan tagged packet is received, skb is marked as tagged, wihtout a tag in the packet.  In Vrouter, tag is inserted in vr_packet without modifying skb length or data. This leads to a problem after vr_preset(). In vmware, when vlan tagged packetd is received, if it needs to be trapped to agent, packet is getting corrupted on pkt0 as vr_preset() does not consider the extra 4 bytes of vlan tag. As a fix, vlan tag is inserted in skb itself.  2) When Host OS sends some packets to VM on Esxi, packets to Esxi VM will be tagge by Vrouter in encap nexthop. But in reserver path, packets from VM will have a vlan tag which need to be removed before giving to Vhost. This is added as an explicit check from Virtual vlan interface to Vhost to ensure no other recv_nh packets are effected.

Change-Id: Idfeaed60e42d07d8a74ce69fd53565188eab4a80
closes-bug:#1393201 Ensuring theat component nexthops exists before accesing the composite multicast nexthop

Change-Id: I2592047a411917891e4f7df94cd3ac644880e2c1
Fix a double free error in vr_message_process_response

Change-Id: Ic8c84d076d078a87adaf6d4398373c368db0361c
Closes-bug: #1394147
(cherry picked from commit 9f7b8ca9a56af6cbd84bd5f19e035b24eb83b1f8)
Fix return code check

The current code reads:

   if ((ret = vr_fragment_table_init(vrouter) < 0))

The check is performed correctly, but since the "<" comparison takes
precedence, ret is now 1, which confuses the module loader into thinking
everything worked out.

Move the parentheses to fix this issue.
Return ENOMEM when failing to allocate memory

When vr_btable_alloc fails, it should get reported back up the call
stack as ENOMEM, not EINVAL. This is also what happens in vr_flow.
Reduce the max size of individual allocations for btable

vr_flow_table in particular requires large amounts of memory. If not
allocated at boot time, it's common for such large chunks of contiguous
memory pages to not be available. Reducing the max size of these
allocations makes it much more likely that the request can be
accommodated.

I would have chosen a lower value than this, but several datatypes have
"odd" (non-power-of-2) sizes, so they needed to fit within a single
allocation, otherwise they'd fail the (VR_SINGLE_ALLOC_LIMIT % entry_size)
check.