lldpad: Primarily identify netdevs by ifindex

Presently, lldpad principally uses ifname to identify netdevs.
This can result in problems when netdevs are renamed by udev.
This problem is most easily reproduced by frequent driver
loading and unloading. There are races that happen and
sometimes lldpad will capture the netdev name before udev
renames it. Since the ifindex does not change for the life
of an interface, it provides a more positive identification,
so use it as the primary identifier. This will result in
more calls to convert ifname to ifindex, but that overhead
should be acceptable.

Even with this patch, ifname is still used for some things
and should probably be reconsidered for everything except
configurations, which need to use a persistent identifier.

V2: Modified to account for upstream changes

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Jack Morgan <jack.morgan@intel.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
vdp22 add vsi22 profile data structure

Add data structure for vdp22 protocol profile data
and the necessary defines.

Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
vdp22 add netlink support for filter format field

Add the filter format field into the internal netlink data
structure for vdp. Currently supported is only the MAC-VLAN ID
pair format.

Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
vdp22 add more support for vdp22 protocol

This patch adds more support to create a VDP22 protocol VSI proile and
to query the result of a vdp22_request command from the buddy.
A vdp22_status function is introduced to collect the necessary
vsi profile data when a GETLINK message is received by the buddy.
As in vdp22_query, the interface selects the protocol version being
run on this interface.
All VSI profile commands will be handled by the vdp22_addreq()
function, it is the entry point to the VSI profile state machine
code.

Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
vdp22 add timeout calcuation

The evb22 modules sends the ECP retry and ECP RTE values to the
vdp22 module. The vdp22 module calculates the timeouts for
- waitdelay
- response waitdelay
- keep alive
in microseconds. The response waitdelay is the value added to
the waitdelay when a station arms the transmit time out value.
For details see IEEE 802.1Qbg ratified standard 41.5.5.7 and
41.5.5.9.

Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>