Commit 13a6fad8 authored by David S. Miller's avatar David S. Miller

Merge branch 'ife-ethertype'

Alexander Aring says:

====================
tc: act_ife: handle IEEE IFE ethertype as default

this patch series will introduce the IFE ethertype which is registered by
IEEE. If the netlink act_ife type netlink attribute is not given it will
use this value by default now.
At least it will introduce some UAPI testcases to check if the default type
is used if not specified and vice versa.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents c9655840 1d51f65a
...@@ -104,6 +104,7 @@ ...@@ -104,6 +104,7 @@
#define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */ #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ #define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */
#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ #define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value #define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value
......
...@@ -435,8 +435,8 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla, ...@@ -435,8 +435,8 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
struct nlattr *tb[TCA_IFE_MAX + 1]; struct nlattr *tb[TCA_IFE_MAX + 1];
struct nlattr *tb2[IFE_META_MAX + 1]; struct nlattr *tb2[IFE_META_MAX + 1];
struct tcf_ife_info *ife; struct tcf_ife_info *ife;
u16 ife_type = ETH_P_IFE;
struct tc_ife *parm; struct tc_ife *parm;
u16 ife_type = 0;
u8 *daddr = NULL; u8 *daddr = NULL;
u8 *saddr = NULL; u8 *saddr = NULL;
bool exists = false; bool exists = false;
...@@ -456,18 +456,6 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla, ...@@ -456,18 +456,6 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
if (exists && bind) if (exists && bind)
return 0; return 0;
if (parm->flags & IFE_ENCODE) {
/* Until we get issued the ethertype, we cant have
* a default..
**/
if (!tb[TCA_IFE_TYPE]) {
if (exists)
tcf_hash_release(*a, bind);
pr_info("You MUST pass etherype for encoding\n");
return -EINVAL;
}
}
if (!exists) { if (!exists) {
ret = tcf_hash_create(tn, parm->index, est, a, &act_ife_ops, ret = tcf_hash_create(tn, parm->index, est, a, &act_ife_ops,
bind, false); bind, false);
...@@ -484,7 +472,8 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla, ...@@ -484,7 +472,8 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
ife->flags = parm->flags; ife->flags = parm->flags;
if (parm->flags & IFE_ENCODE) { if (parm->flags & IFE_ENCODE) {
ife_type = nla_get_u16(tb[TCA_IFE_TYPE]); if (tb[TCA_IFE_TYPE])
ife_type = nla_get_u16(tb[TCA_IFE_TYPE]);
if (tb[TCA_IFE_DMAC]) if (tb[TCA_IFE_DMAC])
daddr = nla_data(tb[TCA_IFE_DMAC]); daddr = nla_data(tb[TCA_IFE_DMAC]);
if (tb[TCA_IFE_SMAC]) if (tb[TCA_IFE_SMAC])
......
...@@ -1111,5 +1111,55 @@ ...@@ -1111,5 +1111,55 @@
"teardown": [ "teardown": [
"$TC actions flush action gact" "$TC actions flush action gact"
] ]
},
{
"id": "a568",
"name": "Add action with ife type",
"category": [
"actions",
"ife"
],
"setup": [
[
"$TC actions flush action ife",
0,
1,
255
],
"$TC actions add action ife encode type 0xDEAD index 1"
],
"cmdUnderTest": "$TC actions get action ife index 1",
"expExitCode": "0",
"verifyCmd": "$TC actions get action ife index 1",
"matchPattern": "type 0xDEAD",
"matchCount": "1",
"teardown": [
"$TC actions flush action ife"
]
},
{
"id": "b983",
"name": "Add action without ife type",
"category": [
"actions",
"ife"
],
"setup": [
[
"$TC actions flush action ife",
0,
1,
255
],
"$TC actions add action ife encode index 1"
],
"cmdUnderTest": "$TC actions get action ife index 1",
"expExitCode": "0",
"verifyCmd": "$TC actions get action ife index 1",
"matchPattern": "type 0xED3E",
"matchCount": "1",
"teardown": [
"$TC actions flush action ife"
]
} }
] ]
\ No newline at end of file
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