I have Ubuntu 18.04 running on Nvidia Tegra X1 (armv8 processor rev1 (v8l)) device (the system was given to me to work on). I have created a network with it and the device works as router. Now i want to add DSCP class to the packets being forwarded by this device.
But when i do
sudo iptables -t mangle -A FORWARD -d 192.168.x.x -p udp --dport xxxx -j DSCP --set-dscp-class EF
,
It gives me iptables:No chain/target/match by that name
error.
Now i checked which part of command is giving me error by individually testing -p udp
, -d 192.168.x.x
and -j DSCP
and it turns out -j DSCP --set-dscp-class EF
produces the error.
I also check which iptable modules are loaded acc. to this.
cat /proc/net/ip_tables_matches
gives conntrack, conntrack, conntrack, addrtype, udplite,udp, tcp,addrtype, icmp
.
& cat /proc/net/ip_tables_targets
gives MASQUERADE, ERROR
only. When i do this targets command on other ubuntu 16 or 14 laptops they show TOS, DSCP
in addition to ERROR, MASQUERADE
. I assumed that this meant target for iptables on ubuntu 18 machine is not set for DSCP.
But acc. to this, iptables -j DSCP -h
shows the possible target options which would mean that iptables should be able to target DSCp without any errors.
I also found this and when i try to do grep -i NETFILTER_XT_TARGET_DSCP /boot/config-4.9.201-tegra
, it says /boot/config-4.9.201-tegra: No such file or directory
. And i dont know where the config file is present in nvidia modified ubuntu.
If anybody know how DSCP target can be added in iptables, it will be very helpful. Or if kernel will have to be rebuilt with different options?