Add linkstate IP device attribute

Backport of earlier Vyatta patch.

Conflicts:

	include/linux/inetdevice.h
	include/linux/ipv6.h
	include/uapi/linux/ipv6.h
	net/ipv6/addrconf.c
	net/ipv6/route.c
Add special macvlan mode for VRRP.

  This mode allows VRRP to function closer to other vendor
  implementations.  With VRRP users expect that the receive path for
  their traffic will be the same interface that they configure VRRP to
  run on, due to the way other vendor implementations work. Using
  macvlan the user must configure two interfaces in iptables
  configuration in order for all traffic to be inspected. The patch adds
  a VRRP mode to the macvlan driver such that any traffic destined to
  the virtual VRRP mac address will appear to come from the underlying
  interface instead of macvlan interface. The patch accomplishes this by
  utilizing the RX_HANDLER_PASS return value in the macvlan receive
  handler code. The skb is modified with the dev set to the lowerdev
  (the physical interface) and the appropriate pkt_type. The causes the
  rest of the networking stack to treat the skb as if it came from
  lowerdev.

  In order to use this effectively, one must open two raw sockets in the
  userspace code acting as the VRRP daemon, one to send on the macvlan
  interface and the other to listen on the underlying interface for the
  VRRP messages.

Conflicts:
	include/linux/if_link.h
tun: vyatta patches

Add ability to control tun device properties from an external
application.

Conflicts:

	drivers/net/tun.c