Commit 72d84dd6 authored by Steen Hegelund's avatar Steen Hegelund Committed by David S. Miller

net: microchip: sparx5: Add VCAP debugFS key/action support for the VCAP API

This add support for displaying the keys and actions in a rule.
The keys and action display format will be determined by the size and the
type of the key or action. The longer keys will typically be displayed as a
hexadecimal byte array.

The actionset is not decoded in full as the Sparx5 IS2 only has one
supported action, so this will be added later with other VCAP types.
Signed-off-by: default avatarSteen Hegelund <steen.hegelund@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3a792156
...@@ -316,7 +316,7 @@ static int vcap_encode_rule_keyset(struct vcap_rule_internal *ri) ...@@ -316,7 +316,7 @@ static int vcap_encode_rule_keyset(struct vcap_rule_internal *ri)
} }
/* Return the list of actionfields for the actionset */ /* Return the list of actionfields for the actionset */
static const struct vcap_field * const struct vcap_field *
vcap_actionfields(struct vcap_control *vctrl, vcap_actionfields(struct vcap_control *vctrl,
enum vcap_type vt, enum vcap_actionfield_set actionset) enum vcap_type vt, enum vcap_actionfield_set actionset)
{ {
...@@ -326,7 +326,7 @@ vcap_actionfields(struct vcap_control *vctrl, ...@@ -326,7 +326,7 @@ vcap_actionfields(struct vcap_control *vctrl,
return vctrl->vcaps[vt].actionfield_set_map[actionset]; return vctrl->vcaps[vt].actionfield_set_map[actionset];
} }
static const struct vcap_set * const struct vcap_set *
vcap_actionfieldset(struct vcap_control *vctrl, vcap_actionfieldset(struct vcap_control *vctrl,
enum vcap_type vt, enum vcap_actionfield_set actionset) enum vcap_type vt, enum vcap_actionfield_set actionset)
{ {
...@@ -342,7 +342,7 @@ vcap_actionfieldset(struct vcap_control *vctrl, ...@@ -342,7 +342,7 @@ vcap_actionfieldset(struct vcap_control *vctrl,
} }
/* Return the typegroup table for the matching actionset (using subword size) */ /* Return the typegroup table for the matching actionset (using subword size) */
static const struct vcap_typegroup * const struct vcap_typegroup *
vcap_actionfield_typegroup(struct vcap_control *vctrl, vcap_actionfield_typegroup(struct vcap_control *vctrl,
enum vcap_type vt, enum vcap_actionfield_set actionset) enum vcap_type vt, enum vcap_actionfield_set actionset)
{ {
...@@ -355,9 +355,9 @@ vcap_actionfield_typegroup(struct vcap_control *vctrl, ...@@ -355,9 +355,9 @@ vcap_actionfield_typegroup(struct vcap_control *vctrl,
} }
/* Return the number of actionfields in the actionset */ /* Return the number of actionfields in the actionset */
static int vcap_actionfield_count(struct vcap_control *vctrl, int vcap_actionfield_count(struct vcap_control *vctrl,
enum vcap_type vt, enum vcap_type vt,
enum vcap_actionfield_set actionset) enum vcap_actionfield_set actionset)
{ {
/* Check that the actionset exists in the vcap actionset list */ /* Check that the actionset exists in the vcap actionset list */
if (actionset >= vctrl->vcaps[vt].actionfield_set_size) if (actionset >= vctrl->vcaps[vt].actionfield_set_size)
......
...@@ -77,6 +77,22 @@ const struct vcap_field *vcap_keyfields(struct vcap_control *vctrl, ...@@ -77,6 +77,22 @@ const struct vcap_field *vcap_keyfields(struct vcap_control *vctrl,
/* Actionset and actionfield functionality */ /* Actionset and actionfield functionality */
/* Return the actionset information for the actionset */
const struct vcap_set *
vcap_actionfieldset(struct vcap_control *vctrl,
enum vcap_type vt, enum vcap_actionfield_set actionset);
/* Return the number of actionfields in the actionset */
int vcap_actionfield_count(struct vcap_control *vctrl,
enum vcap_type vt,
enum vcap_actionfield_set actionset);
/* Return the typegroup table for the matching actionset (using subword size) */
const struct vcap_typegroup *
vcap_actionfield_typegroup(struct vcap_control *vctrl, enum vcap_type vt,
enum vcap_actionfield_set actionset);
/* Return the list of actionfields for the actionset */
const struct vcap_field *
vcap_actionfields(struct vcap_control *vctrl,
enum vcap_type vt, enum vcap_actionfield_set actionset);
/* Map actionset id to a string with the actionset name */ /* Map actionset id to a string with the actionset name */
const char *vcap_actionset_name(struct vcap_control *vctrl, const char *vcap_actionset_name(struct vcap_control *vctrl,
enum vcap_actionfield_set actionset); enum vcap_actionfield_set actionset);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment