iproute2/tc
Wojciech Drewek e3e17c25f6 f_flower: Introduce PPPoE support
Introduce PPPoE specific fields in tc-flower:
- session id (16 bits)
- ppp protocol (16 bits)
Those fields can be provided only when protocol was set to
ETH_P_PPP_SES. ppp_proto works similar to vlan_ethtype, i.e.
ppp_proto overwrites eth_type. Thanks to that, fields from
encapsulated protocols (such as src_ip) can be specified.

e.g.
  # tc filter add dev ens6f0 ingress prio 1 protocol ppp_ses \
      flower \
        pppoe_sid 1234 \
        ppp_proto ip \
        dst_ip 127.0.0.1 \
        src_ip 127.0.0.2 \
      action drop

Vlan and cvlan is also supported, in this case cvlan_ethtype
or vlan_ethtype has to be set to ETH_P_PPP_SES.

e.g.
  # tc filter add dev ens6f0 ingress prio 1 protocol 802.1Q \
      flower \
        vlan_id 2 \
        vlan_ethtype ppp_ses \
        pppoe_sid 1234 \
        ppp_proto ip \
        dst_ip 127.0.0.1 \
        src_ip 127.0.0.2 \
      action drop

Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com>
Acked-by: Guillaume Nault <gnault@redhat.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
2022-07-29 11:23:22 -06:00
..
.gitignore make yacc usage POSIX compatible 2020-01-20 09:43:22 -08:00
e_bpf.c tc: e_bpf: fix memory leak in parse_bpf() 2021-04-26 21:05:19 -07:00
em_canid.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_cmp.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_ipset.c Include bsd/string.h only in include/utils.h 2018-11-05 08:38:32 -08:00
em_ipt.c tc: fix spelling errors 2019-08-12 18:18:51 -07:00
em_meta.c tc/meta: make meta_table static and const 2018-11-19 11:42:44 -08:00
em_nbyte.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
em_u32.c tc: em_u32: fix offset parsing 2022-05-13 16:32:45 -07:00
emp_ematch.l make yacc usage POSIX compatible 2020-01-20 09:43:22 -08:00
emp_ematch.y make yacc usage POSIX compatible 2020-01-20 09:43:22 -08:00
f_basic.c tc: declaration hides parameter 2022-06-17 10:14:40 -07:00
f_bpf.c tc: declaration hides parameter 2022-06-17 10:14:40 -07:00
f_cgroup.c tc actions: Improved batching and time filtered dumping 2017-08-04 13:16:51 -07:00
f_flow.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
f_flower.c f_flower: Introduce PPPoE support 2022-07-29 11:23:22 -06:00
f_fw.c tc: declaration hides parameter 2022-06-17 10:14:40 -07:00
f_matchall.c tc: declaration hides parameter 2022-06-17 10:14:40 -07:00
f_route.c tc: declaration hides parameter 2022-06-17 10:14:40 -07:00
f_rsvp.c tc: declaration hides parameter 2022-06-17 10:14:40 -07:00
f_tcindex.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
f_u32.c tc: u32: add json support in print_raw, print_ipv4, print_ipv6 2022-02-02 20:51:43 -07:00
m_action.c tc: separate action print for filter and action dump 2022-03-07 15:45:41 -07:00
m_bpf.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_connmark.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_csum.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_ct.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_ctinfo.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_ematch.c tc/ematch: make local functions static 2018-11-19 11:42:44 -08:00
m_ematch.h tc/ematch: make local functions static 2018-11-19 11:42:44 -08:00
m_estimator.c tc/m_estimator: Print proper value for estimator interval in raw. 2020-07-20 13:25:56 -07:00
m_gact.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_gate.c tc: m_gate: use SPRINT_BUF when needed 2021-02-22 18:11:03 -08:00
m_ife.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_ipt.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_mirred.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_mpls.c Merge branch 'main' into next 2020-11-24 22:04:48 -07:00
m_nat.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_pedit.c tc: pedit: add decrement operation 2021-06-26 04:45:19 +00:00
m_pedit.h tc: pedit: add decrement operation 2021-06-26 04:45:19 +00:00
m_police.c police: Fix normal output back to what it was 2021-07-17 11:14:30 -07:00
m_sample.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_simple.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_skbedit.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_skbmod.c tc/skbmod: Introduce SKBMOD_F_ECN option 2021-09-01 12:51:44 -07:00
m_tunnel_key.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_vlan.c tc/m_vlan: fix print_vlan() conditional on TCA_VLAN_ACT_PUSH_ETH 2021-11-17 11:13:12 -08:00
m_xt_old.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
m_xt.c tc: skip actions that don't have options attribute when printing 2020-10-31 09:14:01 -06:00
Makefile tc: Add helpers to support qevent handling 2020-07-05 15:37:27 +00:00
p_eth.c tc: pedit: parse_cmd: add flags argument 2021-06-26 04:44:35 +00:00
p_icmp.c tc/pedit: use structure initialization 2018-11-19 11:42:44 -08:00
p_ip6.c tc: pedit: add decrement operation 2021-06-26 04:45:19 +00:00
p_ip.c tc: pedit: add decrement operation 2021-06-26 04:45:19 +00:00
p_tcp.c tc: pedit: parse_cmd: add flags argument 2021-06-26 04:44:35 +00:00
p_udp.c tc: pedit: parse_cmd: add flags argument 2021-06-26 04:44:35 +00:00
q_atm.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
q_cake.c q_cake: allow changing to diffserv3 2022-01-12 15:26:11 -08:00
q_cbq.c lib: Move print_rate() from tc here; modernize 2020-12-09 02:30:15 +00:00
q_cbs.c tc: cbs: add support for JSON output 2019-12-29 09:57:27 -08:00
q_choke.c tc: choke: add support for JSON output 2019-12-29 09:57:27 -08:00
q_clsact.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
q_codel.c tc: codel: add support for JSON output 2019-12-29 09:57:27 -08:00
q_drr.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_dsmark.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_etf.c etf: Add skip_sock_check 2019-07-18 15:44:21 -07:00
q_ets.c tc: q_ets: drop dead code from argument parsing 2021-05-06 14:42:44 +00:00
q_fifo.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_fq_codel.c tc: Add support for ce_threshold_value/mask in fq_codel 2021-12-13 20:19:37 -07:00
q_fq_pie.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_fq.c tc: fq: add horizon attributes 2021-06-07 02:56:01 +00:00
q_gred.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_hfsc.c lib: Move print_rate() from tc here; modernize 2020-12-09 02:30:15 +00:00
q_hhf.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_htb.c tc: htb: improve burst error messages 2021-05-09 22:13:22 +00:00
q_ingress.c ingress: Don't break JSON output 2018-04-25 11:08:39 -07:00
q_mqprio.c lib: Move print_rate() from tc here; modernize 2020-12-09 02:30:15 +00:00
q_multiq.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_netem.c netem: fix clang warnings 2022-01-26 10:19:08 -07:00
q_pie.c Revert "tc: pie: change maximum integer value of tc_pie_xstats->prob" 2020-03-10 18:29:26 +00:00
q_plug.c tc: add support for plug qdisc 2019-05-04 09:22:14 -07:00
q_prio.c tc: prio: fix space in JSON tag 2020-01-06 13:11:41 -08:00
q_qfq.c treewide: Use addattr_nest()/addattr_nest_end() to handle nested attributes 2018-02-02 15:01:09 -08:00
q_red.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_rr.c tc: B.W limits can now be specified in %. 2017-11-24 11:22:13 -08:00
q_sfb.c tc: sfb: add support for JSON output 2019-12-29 09:57:27 -08:00
q_sfq.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
q_skbprio.c tc: skbprio: add support for JSON output 2020-01-06 13:12:02 -08:00
q_taprio.c Replace open-coded instances of print_nl() 2020-05-04 17:13:53 -07:00
q_tbf.c lib: Move sprint_size() from tc here, add print_size() 2020-12-09 02:30:25 +00:00
static-syms.c SPDX license identifiers 2017-11-24 12:21:35 -08:00
tc_cbq.c tc: fix spelling errors 2019-08-12 18:18:51 -07:00
tc_cbq.h SPDX license identifiers 2017-11-24 12:21:35 -08:00
tc_class.c tc: parse attributes with NLA_F_NESTED flag 2020-01-22 03:45:48 +00:00
tc_common.h Move the use_iec declaration to the tools 2020-12-09 02:28:43 +00:00
tc_core.c iproute2-next: police: support 64bit rate and peakrate in tc utility 2019-09-15 10:39:19 -07:00
tc_core.h iproute2-next: police: support 64bit rate and peakrate in tc utility 2019-09-15 10:39:19 -07:00
tc_estimator.c tc: support conversions to or from 64 bit nanosecond-based time 2018-08-30 11:04:38 -07:00
tc_exec.c treewide: refactor help messages 2019-05-20 14:35:07 -07:00
tc_filter.c tc: implement support for terse dump 2020-10-31 09:15:15 -06:00
tc_monitor.c Tree wide: Drop sockaddr_nl arg 2018-10-22 09:43:48 -07:00
tc_qdisc.c tc: Look for blocks in qevents 2020-07-20 16:34:02 +00:00
tc_qevent.c tc: Add space after format specifier 2020-07-29 17:03:46 +00:00
tc_qevent.h tc: Look for blocks in qevents 2020-07-20 16:34:02 +00:00
tc_red.c tc: q_red: Support 'nodrop' flag 2020-03-25 16:45:37 +00:00
tc_red.h tc: move RED flag printing to helper 2018-11-24 07:10:58 -08:00
tc_stab.c drop unneeded include of syslog.h 2017-11-12 16:22:36 -08:00
tc_util.c Merge branch 'main' into next 2022-02-27 18:25:02 -07:00
tc_util.h lib: Move get_size() from tc here 2020-12-09 02:30:50 +00:00
tc.c iproute2: add check_libbpf() and get_libbpf_version() 2020-11-24 22:14:02 -07:00