Allow IPv6 link-local forwarding within the same VN

Flood Neighbor solicit for link-local prefixes. This will result in appropriate
MAC addresses getting learnt for link-local addresses (mimic L2-only behavior).

Pull in L4 headers into SKB for IPv6 packets

Change-Id: I417df4709a3bad77076f9deb186a27d15431bb31
IPv6 changes
(on behalf of Prabhakaran)

Change-Id: I16d47e843bbe85b7de8438205c76ae29d41c14a5
Fix build issue in mainline

Change-Id: If62ea3f0c554da7e6d52f7d4f0f23f5a6de7214e
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: I603ebb60adcdb5199ac545575179c52e90774b9b
    vrouter changes to support ping and traceroute diagnostics

    - Packets with transport header checksum of 0xffff are marked as
    diagnostic packets and trapped to agent for further processing
    - vrouter now decrements ttl for every packet forwarded
    - for diagnostic packets, vrouter copies the ttl from the inner
    packet to outer header
    - if ttl goes to zero, packets are trapped to agent so that ICMP
    errors are sent to the source
fix typo : use dport instead of sport
- For ICMP error packets that come from intermediate routers and meant
to be processed by agent, pull only the first 4 bytes of the error payload
transport header, since we are guaranteed only the first 8 bytes of
transport header

- When transmitting the final packet, make the outer ip header's ip id to
be the same as that of the inner ip header. This behavior is needed by
agent, which uses this id to correlate diagnostic requests with responses
(and specifically critical for icmp errors generated by intermediate routers,
where only the first 8 bytes of the transport header is available)

- Do not forward packets with zero ttl
Reducing the range of source ports used in MPLSoUDP, so that underlay flows can be more easily primed for OverlayToPhysical path correlation
Fix build issue in mainline

Change-Id: If62ea3f0c554da7e6d52f7d4f0f23f5a6de7214e
    vrouter changes to support ping and traceroute diagnostics

    - Packets with transport header checksum of 0xffff are marked as
    diagnostic packets and trapped to agent for further processing
    - vrouter now decrements ttl for every packet forwarded
    - for diagnostic packets, vrouter copies the ttl from the inner
    packet to outer header
    - if ttl goes to zero, packets are trapped to agent so that ICMP
    errors are sent to the source
fix typo : use dport instead of sport
- For ICMP error packets that come from intermediate routers and meant
to be processed by agent, pull only the first 4 bytes of the error payload
transport header, since we are guaranteed only the first 8 bytes of
transport header

- When transmitting the final packet, make the outer ip header's ip id to
be the same as that of the inner ip header. This behavior is needed by
agent, which uses this id to correlate diagnostic requests with responses
(and specifically critical for icmp errors generated by intermediate routers,
where only the first 8 bytes of the transport header is available)

- Do not forward packets with zero ttl
reset head and rebased to mainline
rebased with mainline