Re: [PATCH net-next v4 1/6] net: dcb: add new pcp selector to app object
From: Petr Machata <petrm@nvidia.com>
Date: 2022-10-31 11:35:04
Also in:
linux-arm-kernel, lkml
Daniel Machon [off-list ref] writes:
quoted hunk ↗ jump to hunk
diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c index dc4fb699b56c..68e033a459af 100644 --- a/net/dcb/dcbnl.c +++ b/net/dcb/dcbnl.c@@ -179,6 +179,57 @@ static const struct nla_policy dcbnl_featcfg_nest[DCB_FEATCFG_ATTR_MAX + 1] = { static LIST_HEAD(dcb_app_list); static DEFINE_SPINLOCK(dcb_lock); +static enum ieee_attrs_app dcbnl_app_attr_type_get(u8 selector) +{ + switch (selector) { + case IEEE_8021QAZ_APP_SEL_ETHERTYPE: + case IEEE_8021QAZ_APP_SEL_STREAM: + case IEEE_8021QAZ_APP_SEL_DGRAM: + case IEEE_8021QAZ_APP_SEL_ANY: + case IEEE_8021QAZ_APP_SEL_DSCP: + return DCB_ATTR_IEEE_APP; + case DCB_APP_SEL_PCP: + return DCB_ATTR_DCB_APP; + default: + return DCB_ATTR_IEEE_APP_UNSPEC; + } +} + +static bool dcbnl_app_attr_type_validate(enum ieee_attrs_app type) +{ + switch (type) { + case DCB_ATTR_IEEE_APP: + case DCB_ATTR_DCB_APP: + return true; + default: + return false; + } +} + +static bool dcbnl_app_selector_validate(enum ieee_attrs_app type, u32 selector) +{ + switch (selector) { + case IEEE_8021QAZ_APP_SEL_ETHERTYPE: + case IEEE_8021QAZ_APP_SEL_STREAM: + case IEEE_8021QAZ_APP_SEL_DGRAM: + case IEEE_8021QAZ_APP_SEL_ANY: + case IEEE_8021QAZ_APP_SEL_DSCP: + /* IEEE std selectors in IEEE std attribute */ + if (type == DCB_ATTR_IEEE_APP) + return true; + else + return false;
AKA return type == DCB_ATTR_IEEE_APP;
+ case DCB_APP_SEL_PCP: + /* Non-std selectors in non-std attribute */ + if (type == DCB_ATTR_DCB_APP) + return true; + else + return false;
Likewise here.
+ default: + return false; + }
Also, it really looks like the following would be equivalent?
static bool dcbnl_app_selector_validate(enum ieee_attrs_app type, u32 selector)
{
return dcbnl_app_attr_type_get(selector) == type;
}
Also, shouldn't it be u8 selector?
+}
+
static struct sk_buff *dcbnl_newmsg(int type, u8 cmd, u32 port, u32 seq,
u32 flags, struct nlmsghdr **nlhp)
{