6
24
Fork
You've already forked ifstate
13

Feature: tc qdisc / filter support? #63

Open
opened 2024年10月22日 01:25:36 +02:00 by marekm72 · 1 comment

I'm not sure how feasible this is (tc has so many features), for example it would be nice to be able to declare some tc ingress filters (L2 packet filtering) like these I currently set up with the shell script below:

#! /bin/sh
set -e
# block ipv6cp from broken phicomm routers (MAC prefix: d8c8e9, fc7c02)
PPPOE_IFACES="eth2 eth4"
for i in $PPPOE_IFACES ; do
 tc qdisc del dev $i ingress || true
 tc qdisc add dev $i ingress
 tc filter add dev $i parent ffff: u32 match u32 0xd8c8e900 0xffffff00 at -8 match u16 0x8864 0xffff at -2 match u16 0x8057 0xffff at 6 action drop
 tc filter add dev $i parent ffff: u32 match u32 0xfc7c0200 0xffffff00 at -8 match u16 0x8864 0xffff at -2 match u16 0x8057 0xffff at 6 action drop
done

I use this on my PPPoE servers to work around cheap buggy Phicomm KE2M routers that worked for IPv4 but unexpectedly broke when I enabled IPv6 - nowhere on the box or in the web GUI do they advertise any IPv6 support at all, but try to negotiate it anyway and then fail, this combined with a bug in accel-ppp where closing IPV6CP terminates the whole session, so they were disconnecting all the time.

I'm not sure how feasible this is (tc has so many features), for example it would be nice to be able to declare some tc ingress filters (L2 packet filtering) like these I currently set up with the shell script below: ``` #! /bin/sh set -e # block ipv6cp from broken phicomm routers (MAC prefix: d8c8e9, fc7c02) PPPOE_IFACES="eth2 eth4" for i in $PPPOE_IFACES ; do tc qdisc del dev $i ingress || true tc qdisc add dev $i ingress tc filter add dev $i parent ffff: u32 match u32 0xd8c8e900 0xffffff00 at -8 match u16 0x8864 0xffff at -2 match u16 0x8057 0xffff at 6 action drop tc filter add dev $i parent ffff: u32 match u32 0xfc7c0200 0xffffff00 at -8 match u16 0x8864 0xffff at -2 match u16 0x8057 0xffff at 6 action drop done ``` I use this on my PPPoE servers to work around cheap buggy Phicomm KE2M routers that worked for IPv4 but unexpectedly broke when I enabled IPv6 - nowhere on the box or in the web GUI do they advertise any IPv6 support at all, but try to negotiate it anyway and then fail, this combined with a bug in accel-ppp where closing IPV6CP terminates the whole session, so they were disconnecting all the time.
Owner
Copy link

It might be possible to extend the existing tc schema, but yes it doesn't look like ifstate can handle any arbitrary valid filter config.

It might be possible to extend the existing [tc schema](https://ifstate.net/schema/1.13/#interfaces_items_tc_filter_items), but yes it doesn't look like ifstate can handle any arbitrary valid filter config.
Sign in to join this conversation.
No Branch/Tag specified
main
move-paths-into-module
feature-libifstate-rs
ifstate-2.4
pages
ifstate-2.1
ifstate-2.3
ifstate-2.0
ifstate-2.2
ifstate-1.x
2.4.1
2.4.0
2.3.0
2.3.0-pre6
2.2.6
2.3.0-pre5
2.3.0-pre4
2.3.0-pre3
2.3.0-pre2
2.3.0-pre1
2.2.5
2.3.0-pre0
2.2.4
2.2.4-pre2
2.2.4-pre1
2.2.4-pre0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
1.13.9
2.0.2
2.0.1
1.13.8
2.0.0
2.0.0rc6
2.0.0rc5
2.0.0rc4
2.0.0rc3
2.0.0rc2
2.0.0rc1
1.13.7
1.13.6
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
1.13.0
1.12.0
1.11.9
1.11.8
1.11.7
1.11.6
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.1
1.10.0
1.9.0
1.8.5
1.8.4
1.8.3
1.8.2
1.8.1
1.8.0
1.7.0
1.6.1
1.6.0
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.0
1.0.0
0.9.0
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5
0.4
0.3
0.2
Labels
Clear labels
bug
Something isn't working
documentation
Improvements or additions to documentation
duplicate
This issue or pull request already exists
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Extra attention is needed
invalid
This doesn't seem right
more info
Further details are required, the problem may not yet be reproducible, yet
question
Further information is requested
TBD
To be discussed
wontfix
This will not be worked on
AI slop
Burning out
bug
Something is not working
contribution welcome
Contributions are very welcome, get started here
duplicate
This issue or pull request already exists
enhancement
New feature
good first issue
Interested in contributing? Get started here.
help wanted
Need some help
invalid
Something is wrong
question
More information is needed
upstream
Related to an upstream repository, already reported there
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
routerkit/ifstate#63
Reference in a new issue
routerkit/ifstate
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?