1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-12 10:31:51 +00:00

Add DSCP IPv6 rules only if IPv6 is enabled

This commit is contained in:
Ycarus (Yannick Chabanois) 2024-03-20 14:03:22 +01:00
parent 37ac209817
commit a2af208487

View file

@ -34,17 +34,26 @@ _add_dscp_domains_rules() {
uci -q batch <<-EOF
set dhcp.omr_dscp_${class}=ipset
add_list dhcp.omr_dscp_${class}.name="omr_dscp_${class}_4"
commit dhcp
EOF
if [ "$disableipv6" = "0" ]; then
uci -q batch <<-EOF
add_list dhcp.omr_dscp_${class}.name="omr_dscp_${class}_6"
commit dhcp
EOF
fi
uci batch <<-EOF
set firewall.omr_dscp_${class}_4=ipset
set firewall.omr_dscp_${class}_4.name="omr_dscp_${class}_4"
set firewall.omr_dscp_${class}_4.match='dest_ip'
EOF
if [ "$disableipv6" = "0" ]; then
uci -q batch <<-EOF
set firewall.omr_dscp_${class}_6=ipset
set firewall.omr_dscp_${class}_6.name="omr_dscp_${class}_6"
set firewall.omr_dscp_${class}_6.match='dest_ip'
EOF
fi
uci -q batch <<-EOF
set firewall.omr_dscp_rule_${class}_4=rule
set firewall.omr_dscp_rule_${class}_4.name="omr_dscp_${class}_4"
@ -53,6 +62,10 @@ _add_dscp_domains_rules() {
set firewall.omr_dscp_rule_${class}_4.target='DSCP'
set firewall.omr_dscp_rule_${class}_4.src='lan'
set firewall.omr_dscp_rule_${class}_4.dest='*'
commit firewall
EOF
if [ "$disableipv6" = "0" ]; then
uci -q batch <<-EOF
set firewall.omr_dscp_rule_${class}_6=rule
set firewall.omr_dscp_rule_${class}_6.name="omr6_dscp_${class}_6"
set firewall.omr_dscp_rule_${class}_6.ipset="omr_dscp_${class}_6"
@ -62,6 +75,7 @@ _add_dscp_domains_rules() {
set firewall.omr_dscp_rule_${class}_6.dest='*'
commit firewall
EOF
fi
done
}
@ -114,19 +128,23 @@ _add_fwmark_chain() {
_ipt4 -N dscp_mark
_ipt4 -A PREROUTING -i "$lan_device" -j dscp_mark
_ipt4 -A POSTROUTING -j dscp_mark
if [ "$disableipv6" = "0" ]; then
_ipt6 -N dscp_mark
_ipt6 -A PREROUTING -i "$lan_device" -j dscp_mark
_ipt6 -A POSTROUTING -j dscp_mark
fi
for class in cs4 cs5 cs6 cs7; do
# xtun (hex) -> 0x7874756e
_ipt4 -A dscp_mark \
-m comment --comment "$class" \
-m dscp --dscp-class "$class" \
-j MARK --set-mark 0x7874756e
if [ "$disableipv6" = "0" ]; then
_ipt6 -A dscp_mark \
-m comment --comment "$class" \
-m dscp --dscp-class "$class" \
-j MARK --set-mark 0x7874756e
fi
done
}
@ -147,7 +165,9 @@ _setup_tunnel() {
# tun0: cs0 (default)
# xtun0: cs6
_ipt4 -A dscp_output -o "tun0" -j DSCP --set-dscp-class cs6
if [ "$disableipv6" = "0" ]; then
_ipt6 -A dscp_output -o "tun0" -j DSCP --set-dscp-class cs6
fi
}
_cleanup() {
@ -165,7 +185,7 @@ _cleanup() {
start_service() {
# Cleanup
_cleanup
disableipv6="$(uci -q get openmptcprouter.settings.disable_ipv6)"
config_load dscp
# Add chains
_add_dscp_domains_rules