RFC-VDP: Support for OUI infrastructure in VDP22.

This patch contains the header field changes for a general framework for supporting OUI fields in VDP22 at the station side. The specific changes are described below.

qbg_vdpnl.h:
-------------
Couple of parameters are added to the vdpnl_vsi structure. One is the number of OUI parameters. Generally, this will be 1, as the chances of having different OUI in a single message for VDP22 is quite low. Nevertheless, there's support for having multiple OUI in a single VSI. The other field is a general structure of len,opaque data format for carrying the OUI data.
qbg_vdp22_oui.h:
----------------
This is a new header file added for supporting the OUI framework. This file contains the OUI specific sub-structures for vdpnl and vsi22 structures and function handler structure.:w

Signed-off-by: padkrish <padkrish@cisco.com>
RFC-VDP: Support for OUI infrastructure in vdptool.

This patch contains the changes made in vdptool to support OUI fields in vdptool. This commit has only the infra-structure changes needed for supporting OUI. No specific OUI fields are added as a part of this commit. The man page for vdptool is also modified accordingly.
The OUI data can be given as input to vdptool in different ways.
It could be
 vdptool .... -c oui=companyA,Data1 -c oui=companyB,Data2 -c oui=companyA,Data3
 Or
 vdptool .... -c oui=companyA,Data1Data3 -c oui=companyB,data2
where companyA and companyB are the name of the Organizations.
Anything after the comma in OUI data field is Org specific and it's upto
the respective organization specific handlers to encode it so that it could
be decoded appropriately by the ORG specific handlers inside lldpad.
That is, Data1 and Data3 is specific to Organization 'companyA' and the
OUI handlers of companyA in vdptool and lldpad is responsible for
encoding/decoding the data. The common code in vdptool and lldpad just treats
it as opaque data. 'companyA' or 'companyB' above is the key using which
the right handlers will be called.

Irrespective of how the command line interface to vdptool is, the input to
lldpad is always the same. i.e. KeywordlenKeywordDatalenData
For OUI, the data field will have the complete OUI data starting with
ORG name (e.g companyA). So, in order to call the right handler routine,
the OUI data field is split as OUInamelenOUInameOUIData.
OUInamelen is 2B.

For example if the following is given:
vdptool -T -W -i eth2  -V assoc -c mode=assoc -c mgrid2=0 -c typeid=0 -c typeidver=0 -c uuid=18ea3452-b364-4e13-a1a2-9c6524deb685 -c hints=none -c filter=0-fa:16:3e:4c:2d:85-90001 -c oui=companyA,val1=data1

The data sent to lldpad by vdptool will be as follows assuming companyA encode
handlers in vdptool encodes it the same way:

04mode0005assoc06mgrid20001006typeid0001009typeidver0001004uuid002418ea3452-b364-4e13-a1a2-9c6524deb68505hints0004none06filter00190-fa:16:3e:4c:2d:85-9000103oui001408companyAval1=data1

This commit will not insert the oui fields as given above because no OUI
specific handlers are added.

Signed-off-by: padkrish <padkrish@cisco.com>
RFC-VDP: Support for OUI infrastructure in vdp22.

This commit is a framework for supporting OUI fields
in VDP22. This specific patch has changes for converting
OUI input to vdpnl structure, vdpnl to VSI
 and place-holders for calling the OUI handlers.
The specific changes are:

vdp22.c:
-------
Currently, the OUI handler code is linked statically to the lldpad (vdp22).
Some more enhancements are needed to support the dynamic linking of OUI
handler code. This is the general flow:
All the OUI handlers specify their init function in vdp22_oui_init_list. When
VDP22 receives a command with the OUI fields, then based on the OUI value,
it calls the appropriate init function. The OUI specific init function
implemented in the OUI specific file (not in this file) then registers its
handlers with VDP22. The handlers prototype is in qbg_vdp22_oui.h and it
currently has:
1. Handler for converting the OUI string to OUI structure which is a member of vdpnl structure.
2. Handler for converting the OUI structure from vdpnl structure to a OUI structure which is a member of vsi22 structure
3. Handler for creating the OUI fields for Tx.
4.  handler for processing/Rx the OUI information
5. Handler for freeing the OUI structure
6. Handler to return the size of OUI PTLV

Then, accordingly the respective handlers are called.
Function 'vdp22_delete_oui' calls each of the registered handlers for freeing
its OUI specific fields.
Function 'vdpnl_alloc_vsi_oui' calls each of the registered handlers for
creating a OUI structure in vsi22 structure.
Function 'oui_vdp_hndlr_init' is called by OUI specific code to register
its handlers.
Function 'vdp22_oui_init' calls the OUI specific init function.
Comments are embedded in the other functions added.

vdp22sm.c:
----------
Function 'oui22_ptlv_sz' calls each of the handlers in its VSI structure
to get the size of the OUI specific PTLV size.
Function 'oui22_2tlv' calls the handler for generating the OUI data for Tx.

vdp22_cmds.c:
-------------
This file has a minor modification to get the number of OUI fields which is
encoded in the input to lldpad.

vdp_ascii.c:
------------
Function 'oui_str2vdpnl' calls the respective handler to convert the OUI input
string to the OUI structure stored in vdpnl structure.

Signed-off-by: padkrish <padkrish@cisco.com>
RFC-VDP: Support for OUI infrastructure in vdp22.

This commit is a framework for supporting OUI fields
in VDP22. This specific patch adds helper functions
(functions exported by VDP to OUI code) to be called by OUI
specific handler code.

Signed-off-by: padkrish <padkrish@cisco.com>
RFC-VDP: Support for Cisco specific OUI extensions to VDP22

This commit has Cisco specific extensions to VDP22. vdptool is also
modified to carry Cisco's extensions for OUI.
The parameters to vdptool that are added for supporting Cisco OUI are:
"-c oui=cisco,vm_name=myname -c oui=cisco,ipv4_addr=a.b.c.d -c oui=cisco,vm_uuid=aaa"

The description of the files are:

vdp22cisco_oui.c:
-----------------
This file contain all the handler implementation.
vdp_cisco.h:
------------
Cisco specific OUI definitions and structures.
vdptool_cisco_oui.c:
--------------------
Cisco specific OUI extensions for user input.

Signed-off-by: padkrish <padkrish@cisco.com>
RFC - VDP22 - BUGFIX- Fix the ack timeout handler to set the right timeout variable.

Currently the acktimeout handler sets the keepalive timeout boolean variable as a result of which the profiles don't get deleted when there's a timeout. This diff sets the acktimeout variable in the acktimeout handler.

Signed-off-by: padkrish <padkrish@cisco.com>