36 lines
1.0 KiB
Diff
36 lines
1.0 KiB
Diff
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
Date: Wed, 24 Mar 2021 02:30:50 +0100
|
|
Subject: [PATCH] netfilter: flowtable: support for
|
|
FLOW_ACTION_PPPOE_PUSH
|
|
|
|
Add a PPPoE push action if layer 2 protocol is ETH_P_PPP_SES to add
|
|
PPPoE flowtable hardware offload support.
|
|
|
|
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|
---
|
|
|
|
--- a/net/netfilter/nf_flow_table_offload.c
|
|
+++ b/net/netfilter/nf_flow_table_offload.c
|
|
@@ -600,9 +600,18 @@ nf_flow_rule_route_common(struct net *ne
|
|
continue;
|
|
|
|
entry = flow_action_entry_next(flow_rule);
|
|
- entry->id = FLOW_ACTION_VLAN_PUSH;
|
|
- entry->vlan.vid = other_tuple->encap[i].id;
|
|
- entry->vlan.proto = other_tuple->encap[i].proto;
|
|
+
|
|
+ switch (other_tuple->encap[i].proto) {
|
|
+ case htons(ETH_P_PPP_SES):
|
|
+ entry->id = FLOW_ACTION_PPPOE_PUSH;
|
|
+ entry->pppoe.sid = other_tuple->encap[i].id;
|
|
+ break;
|
|
+ case htons(ETH_P_8021Q):
|
|
+ entry->id = FLOW_ACTION_VLAN_PUSH;
|
|
+ entry->vlan.vid = other_tuple->encap[i].id;
|
|
+ entry->vlan.proto = other_tuple->encap[i].proto;
|
|
+ break;
|
|
+ }
|
|
}
|
|
|
|
return 0;
|