net/ice/base: support L3 DSCP QoS
The base code support to build configuration TLVs
in DSCP mode has not been implemented before, so
the functions to do so and the flow control to determine
if we are in VLAN or DSCP mode need to be added.
The current value for maximum number of DCB APPs
(ICE_DCBX_MAX_APPS) is not sufficient when supporting
DSCP mode. Each DSCP->TC mapping will come in as a
single APP value. So, there can be up to 64 APPs for
DSCP mapping.
Need to keep track of the current DSCP to TC mapping
so that TLVs can be built up to send to the FW. Add
an u8 array to hold this info.
A u64 is also needed to keep track of the DSCP values
that have had an APP submitted to map its value to a
TC. Since it would be unwise to allow an APP to be
overwritten by subsequent APPs, reject mappings for a
DSCP value that already has a user mapped value. This
will allow us to easily track which DSCP values have
been mapped, and when the last one has been deleted.
Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>