|
|
@@ -264,6 +264,14 @@ nfp_flower_calculate_key_layers(struct nfp_app *app,
|
|
|
case cpu_to_be16(ETH_P_ARP):
|
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
+ case cpu_to_be16(ETH_P_MPLS_UC):
|
|
|
+ case cpu_to_be16(ETH_P_MPLS_MC):
|
|
|
+ if (!(key_layer & NFP_FLOWER_LAYER_MAC)) {
|
|
|
+ key_layer |= NFP_FLOWER_LAYER_MAC;
|
|
|
+ key_size += sizeof(struct nfp_flower_mac_mpls);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
/* Will be included in layer 2. */
|
|
|
case cpu_to_be16(ETH_P_8021Q):
|
|
|
break;
|
|
|
@@ -623,6 +631,9 @@ static int nfp_flower_setup_tc_block(struct net_device *netdev,
|
|
|
if (f->binder_type != TCF_BLOCK_BINDER_TYPE_CLSACT_INGRESS)
|
|
|
return -EOPNOTSUPP;
|
|
|
|
|
|
+ if (tcf_block_shared(f->block))
|
|
|
+ return -EOPNOTSUPP;
|
|
|
+
|
|
|
switch (f->command) {
|
|
|
case TC_BLOCK_BIND:
|
|
|
return tcf_block_cb_register(f->block,
|