qcacmn: Add QCA vendor subcommand and attributes for SCS rule configuration

Add a new vendor subcommand QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG
for configuration event of Stream Classification Service (SCS) rule.

Also define the attributes present in this subcommand.

Change-Id: Idab722532f9870a377e5f1c02185bdfe2ccb39eb
CRs-Fixed: 3226253
此提交包含在:
Harsh Kumar Bijlani
2022-06-13 13:00:21 +05:30
提交者 Madan Koyyalamudi
父節點 f3aa35e599
當前提交 b1461c9317

查看文件

@@ -602,6 +602,12 @@
*
* The attributes used with this command are defined in
* enum qca_wlan_vendor_attr_secure_ranging_ctx.
*
* @QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG: Subcommand to configure
* (add, remove, or change) a Stream Classification Service (SCS) rule.
*
* The attributes used with this event are defined in
* enum qca_wlan_vendor_attr_scs_rule_config.
*/
enum qca_nl80211_vendor_subcmds {
@@ -848,6 +854,7 @@ enum qca_nl80211_vendor_subcmds {
QCA_NL80211_VENDOR_SUBCMD_DRIVER_READY = 214,
QCA_NL80211_VENDOR_SUBCMD_PASN = 215,
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT = 216,
QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG = 218,
};
enum qca_wlan_vendor_tos {
@@ -13447,4 +13454,135 @@ enum qca_wlan_vendor_attr_secure_ranging_ctx {
QCA_WLAN_VENDOR_ATTR_SECURE_RANGING_CTX_MAX =
QCA_WLAN_VENDOR_ATTR_SECURE_RANGING_CTX_AFTER_LAST - 1,
};
/**
* enum qca_wlan_vendor_attr_scs_rule_config - Used by the vendor command
* QCA_NL80211_VENDOR_SUBCMD_SCS_RULE_CONFIG to configure Stream Classification
* Service (SCS) rule.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_RULE_ID: Mandatory u32 attribute.
* Represents the unique id of SCS rule to be configured.
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_REQUEST_TYPE: Mandatory u8 attribute.
* Represents the request type: add, remove, or change.
* Values as defined in IEEE Std 802.11-2020, Table 9-246 (SCS Request
* Type definitions).
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_OUTPUT_TID: Mandatory u8 attribute
* in case of add/change request type.
* Represents the output traffic identifier (TID) to be assigned to the flow
* matching the rule.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_CLASSIFIER_TYPE: Mandatory u8
* attribute in case of add/change request type.
* Represents type of classifier parameters present in SCS rule.
* Refer IEEE Std 802.11-2020 Table 9-164 (Frame classifier type).
* Only classifier types 4 and 10 are supported for SCS.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_VERSION: Mandatory u8 attribute
* in case of add/change request type when classifier type is TCLAS4.
* Represents the IP version (4: IPv4, 6: IPv6) of the rule.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_SRC_IPV4_ADDR: Optional
* attribute in case of add/change request type when classifier type is TCLAS4
* and version attribute is IPv4.
* Represents the source IPv4 address in the rule which is to be compared
* against the source IP address in the IPv4 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DST_IPV4_ADDR: Optional
* attribute in case of add/change request type when classifier type is TCLAS4
* and version attribute is IPv4.
* Represents the destination IPv4 address in the rule which is to be compared
* against the destination IP address in the IPv4 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_SRC_IPV6_ADDR: Optional
* attribute in case of add/change request type when classifier type is TCLAS4
* and version attribute is IPv6.
* Represents the source IPv6 address in the rule which is to be compared
* against the source IP address in the IPv6 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DST_IPV6_ADDR: Optional
* attribute in case of add/change request type when classifier type is TCLAS4
* and version attribute is IPv6.
* Represents the destination IPv6 address in the rule which is to be compared
* against the destination IP address in the IPv6 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_SRC_PORT: Optional u16 attribute
* in case of add/change request type when classifier type is TCLAS4.
* Represents the source port number in the rule which is to be compared against
* the source port number in the protocol header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DST_PORT: Optional u16 attribute
* in case of add/change request type when classifier type is TCLAS4.
* Represents the destination port number in the rule which is to be compared
* against the destination port number in the protocol header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DSCP: Optional u8 attribute
* in case of add/change request type when classifier type is TCLAS4.
* Represents the DSCP value in the rule which is to be compared against the
* DSCP field present in the IP header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_NEXT_HEADER: Optional u8
* attribute in case of add/change request type when classifier type is TCLAS4.
* Represents the protocol/next header in the rule which is to be compared
* against the protocol/next header field present in the IPv4/IPv6 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_FLOW_LABEL: Optional
* attribute of size 3 bytes present in case of add/change request type
* when classifier type is TCLAS4 and version is IPv6.
* Represents the flow label value in the rule which is to be compared against
* the flow label field present in the IPv6 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_PROTOCOL_INSTANCE: Optional u8
* attribute in case of add/change request type when classifier type is TCLAS10.
* Represents the protocol instance number in the rule.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_NEXT_HEADER: Optional u8
* attribute in case of add/change request type when classifier type is TCLAS10.
* Represents the protocol/next header in the rule which is to be compared
* against the protocol/next header field present in the IPv4/IPv6 header.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_FILTER_MASK: Optional
* attribute of variable length present when request type is add/change and
* classifier type is TCLAS10.
* Represents the mask to be used for masking the header contents of the header
* specified by QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_NEXT_HEADER
* attribute.
*
* @QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_FILTER_VALUE: Optional
* attribute of variable length present when request type is add/change and
* classifier type is TCLAS10.
* Represents the value to be compared against after masking the header contents
* of the header specified by the
* QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_NEXT_HEADER attribute with the
* filter mask specified by the
* QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_FILTER_MASK attribute.
*/
enum qca_wlan_vendor_attr_scs_rule_config {
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_INVALID = 0,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_RULE_ID = 1,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_REQUEST_TYPE = 2,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_OUTPUT_TID = 3,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_CLASSIFIER_TYPE = 4,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_VERSION = 5,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_SRC_IPV4_ADDR = 6,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DST_IPV4_ADDR = 7,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_SRC_IPV6_ADDR = 8,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DST_IPV6_ADDR = 9,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_SRC_PORT = 10,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DST_PORT = 11,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_DSCP = 12,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_NEXT_HEADER = 13,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS4_FLOW_LABEL = 14,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_PROTOCOL_INSTANCE = 15,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_NEXT_HEADER = 16,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_FILTER_MASK = 17,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_TCLAS10_FILTER_VALUE = 18,
/* Keep last */
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_AFTER_LAST,
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_MAX =
QCA_WLAN_VENDOR_ATTR_SCS_RULE_CONFIG_AFTER_LAST - 1,
};
#endif