net: microchip: vcap: Add vcap_rule_get_key_u32
Add the function vcap_rule_get_key_u32 which allows to get the value and the mask of a key that exist on the rule. If the key doesn't exist, it would return error. Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
2662b3f93d
commit
6009b61f80
@ -2338,6 +2338,22 @@ int vcap_rule_add_key_u128(struct vcap_rule *rule, enum vcap_key_field key,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vcap_rule_add_key_u128);
|
||||
|
||||
int vcap_rule_get_key_u32(struct vcap_rule *rule, enum vcap_key_field key,
|
||||
u32 *value, u32 *mask)
|
||||
{
|
||||
struct vcap_client_keyfield *ckf;
|
||||
|
||||
ckf = vcap_find_keyfield(rule, key);
|
||||
if (!ckf)
|
||||
return -ENOENT;
|
||||
|
||||
*value = ckf->data.u32.value;
|
||||
*mask = ckf->data.u32.mask;
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vcap_rule_get_key_u32);
|
||||
|
||||
/* Find a client action field in a rule */
|
||||
static struct vcap_client_actionfield *
|
||||
vcap_find_actionfield(struct vcap_rule *rule, enum vcap_action_field act)
|
||||
|
@ -258,4 +258,8 @@ int vcap_rule_mod_action_u32(struct vcap_rule *rule,
|
||||
enum vcap_action_field action,
|
||||
u32 value);
|
||||
|
||||
/* Get a 32 bit key field value and mask from the rule */
|
||||
int vcap_rule_get_key_u32(struct vcap_rule *rule, enum vcap_key_field key,
|
||||
u32 *value, u32 *mask);
|
||||
|
||||
#endif /* __VCAP_API_CLIENT__ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user