Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41c3ae8b authored by Greg Bowers's avatar Greg Bowers Committed by Jeff Kirsher
Browse files

i40e: Convert CEE App TLV selector to IEEE selector



Changes the parsing of CEE App TLVs to fill in the App selector in struct
i40e_dcbx_config with the IEEE App selector so the caller doesn't have to
consider whether the App came from a CEE or IEEE DCBX negotiation.

Change-ID: Ia7d9d664cde04d2ebcc9822fd22e4929c6edab3a
Signed-off-by: default avatarGreg Bowers <gregory.j.bowers@intel.com>
Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent ac24382d
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -380,7 +380,7 @@ static void i40e_parse_cee_app_tlv(struct i40e_cee_feat_tlv *tlv,
{
	u16 length, typelength, offset = 0;
	struct i40e_cee_app_prio *app;
	u8 i, up;
	u8 i, up, selector;

	typelength = ntohs(tlv->hdr.typelen);
	length = (u16)((typelength & I40E_LLDP_TLV_LEN_MASK) >>
@@ -397,9 +397,17 @@ static void i40e_parse_cee_app_tlv(struct i40e_cee_feat_tlv *tlv,
				break;
		}
		dcbcfg->app[i].priority = up;
		/* Get Selector from lower 2 bits */
		dcbcfg->app[i].selector = (app->upper_oui_sel &
					   I40E_CEE_APP_SELECTOR_MASK);

		/* Get Selector from lower 2 bits, and convert to IEEE */
		selector = (app->upper_oui_sel & I40E_CEE_APP_SELECTOR_MASK);
		if (selector == I40E_CEE_APP_SEL_ETHTYPE)
			dcbcfg->app[i].selector = I40E_APP_SEL_ETHTYPE;
		else if (selector == I40E_CEE_APP_SEL_TCPIP)
			dcbcfg->app[i].selector = I40E_APP_SEL_TCPIP;
		else
			/* Keep selector as it is for unknown types */
			dcbcfg->app[i].selector = selector;

		dcbcfg->app[i].protocolid = ntohs(app->protocol);
		/* Move to next app */
		offset += sizeof(*app);
+2 −0
Original line number Diff line number Diff line
@@ -418,6 +418,8 @@ struct i40e_fc_info {
#define I40E_APP_PROTOID_FIP		0x8914
#define I40E_APP_SEL_ETHTYPE		0x1
#define I40E_APP_SEL_TCPIP		0x2
#define I40E_CEE_APP_SEL_ETHTYPE	0x0
#define I40E_CEE_APP_SEL_TCPIP		0x1

/* CEE or IEEE 802.1Qaz ETS Configuration data */
struct i40e_dcb_ets_config {