tc-skbmod (8) - Linux Man Pages
tc-skbmod: user-friendly packet editor action
NAME
skbmod - user-friendly packet editor action
SYNOPSIS
tc ... action skbmod { [ set SETTABLE ] [ swap SWAPPABLE ] [ CONTROL ] [ index INDEX ] }
SETTABLE :=
[ dmac
DMAC ]
[ smac
SMAC ]
[ etype
ETYPE ]
SWAPPABLE :=
mac
CONTROL := {
reclassify | pipe | drop | shot | continue | pass }
DESCRIPTION
The skbmod action is intended as a usability upgrade to the existing pedit action. Instead of having to manually edit 8-, 16-, or 32-bit chunks of an ethernet header, skbmod allows complete substitution of supported elements.OPTIONS
- dmac DMAC
- Change the destination mac to the specified address.
- smac SMAC
- Change the source mac to the specified address.
- etype ETYPE
- Change the ethertype to the specified value.
- mac
- Used to swap mac addresses. The swap mac directive is performed after any outstanding D/SMAC changes.
- CONTROL
-
The following keywords allow to control how the tree of qdisc, classes,
filters and actions is further traversed after this action.
-
- reclassify
- Restart with the first filter in the current list.
- pipe
- Continue with the next action attached to the same filter.
- drop
- shot Drop the packet.
- continue
- Continue classification with the next filter in line.
- pass
- Finish classification process and return to calling qdisc for further packet processing. This is the default.
-
EXAMPLES
To start, observe the following filter with a pedit action:
-
tc filter add dev eth1 parent 1: protocol ip prio 10 \
Using the skbmod action, this command can be simplified to:
-
tc filter add dev eth1 parent 1: protocol ip prio 10 \
Complexity will increase if source mac and ethertype are also being edited as part of the action. If all three fields are to be changed with skbmod:
-
tc filter add dev eth5 parent 1: protocol ip prio 10 \
Finally, swap the destination and source mac addresses in the header:
-
tc filter add dev eth3 parent 1: protocol ip prio 10 \
As mentioned above, the swap action will occur after any smac/dmac substitutions are executed, if they are present.