diff --git a/luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua b/luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua index 2b6e2523a..a2c17c22b 100644 --- a/luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua +++ b/luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua @@ -28,4 +28,8 @@ t:value("cs6", translate("CS6 - Network routing")) t:value("cs7", translate("CS7")) t:value("ef", translate("EF Voice")) +c = s:option(Value, "comment", translate("Comment")) +c.optional = true + + return m diff --git a/luci-app-omr-dscp/root/etc/config/dscp b/luci-app-omr-dscp/root/etc/config/dscp new file mode 100644 index 000000000..91f3d19aa --- /dev/null +++ b/luci-app-omr-dscp/root/etc/config/dscp @@ -0,0 +1,225 @@ +config classify + option direction 'both' + option proto 'icmp' + option class 'cs5' + option comment 'ICMP' + +config classify + option direction 'both' + option proto 'udp' + option class 'cs5' + option src_port '53,123,5353' + option comment 'DNS udp and NTP' + +config classify + option direction 'both' + option proto 'tcp' + option class 'cs5' + option src_port '53,5353' + option comment 'DNS tcp' + +config domains + option name 'googlevideo.com' + option class 'cs4' + option comment 'Youtube' + +config domains + option name 'nflxvideo.net' + option class 'cs4' + option comment 'NetFlix' + +config domains + option name 's3.ll.dash.row.aiv-cdn.net' + option class 'cs4' + option comment 'AmazonVideo' + +config domains + option name 'd25xi40x97liuc.cloudfront.net' + option class 'cs4' + option comment 'AmazonVideo' + +config domains + option name 'aiv-delivery.net' + option class 'cs4' + option comment 'AmazonVideo' + +config domains + option name 'fbcdn.net' + option class 'cs4' + option comment 'Facebook' + +config domains + option name 'ttvnw.net' + option class 'cs4' + option comment 'Twitch' + +config domains + option name 'vevo.com' + option class 'cs4' + option comment 'VeVo' + +config domains + option name 'audio-fa.scdn.cot' + option class 'cs4' + option comment 'Spotify' + +config domains + option name 'deezer.com' + option class 'cs4' + option comment 'Deezer' + +config domains + option name 'sndcdn.com' + option class 'cs4' + option comment 'SoundCloud' + +config domains + option name 'last.fm' + option class 'cs4' + option comment 'last.fm' + +config domains + option name 'v.redd.it' + option class 'cs4' + option comment 'reddit videos' + +config domains + option name 'ttvnw.net' + option class 'cs4' + option comment 'twitch.tv' + +config domains + option name 'googletagmanager.com' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'googleusercontent.com' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'google.com' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'fbcdn.net' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'akamaihd.net' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'whatsapp.net' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'whatsapp.com' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'googleapis.com' + option class 'cs2' + option comment 'cdn' + +config domains + option name '1e100.net' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'hwcdn.net' + option class 'cs2' + option comment 'cdn' + +config domains + option name 'download.qq.com' + option class 'cs1' + option comment 'qq download' + +config domains + option name 'steamcontent.com' + option class 'cs1' + option comment 'Steam download' + +config domains + option name 'gs2.ww.prod.dl.playstation.net' + option class 'cs1' + option comment 'PSN download' + +config domains + option name 'dropbox.com' + option class 'cs1' + option comment 'Dropbox' + +config domains + option name 'dropboxstatic.com' + option class 'cs1' + option comment 'Dropbox' + +config domains + option name 'dropbox-dns.com' + option class 'cs1' + option comment 'Dropbox' + +config domains + option name 'log.getdropbox.com' + option class 'cs1' + option comment 'Dropbox' + +config domains + option name 'drive.google.com' + option class 'cs1' + option comment 'Google Drive' + +config domains + option name 'drive-thirdparty.googleusercontent.com' + option class 'cs1' + option comment 'Google Drive' + +config domains + option name 'docs.google.com' + option class 'cs1' + option comment 'Google Docs' + +config domains + option name 'docs.googleusercontent.com' + option class 'cs1' + option comment 'Google Docs' + +config domains + option name 'gvt1.com' + option class 'cs1' + option comment 'PlayStore Download' + +config domains + option name 'mmg-fna.whatsapp.net' + option class 'cs1' + option comment 'WhatsApp Files' + +config domains + option name 'upload.youtube.com' + option class 'cs1' + option comment 'Youtube Upload' + +config domains + option name 'upload.video.google.com' + option class 'cs1' + option comment 'Youtube Upload' + +config domains + option name 'windowsupdate.com' + option class 'cs1' + option comment 'WindowsUpdate' + +config domains + option name 'update.microsoft.com' + option class 'cs1' + option comment 'WindowsUpdate' + diff --git a/luci-app-omr-dscp/root/etc/init.d/omr-dscp b/luci-app-omr-dscp/root/etc/init.d/omr-dscp index d5ddfd836..38d8c6fbc 100755 --- a/luci-app-omr-dscp/root/etc/init.d/omr-dscp +++ b/luci-app-omr-dscp/root/etc/init.d/omr-dscp @@ -36,7 +36,7 @@ _add_dscp_domain() { } _add_dscp_domains_rules() { - for $class in cs0 cs1 cs2 cs3 cs4 cs5 cs6 cs7 ef; do + for class in cs0 cs1 cs2 cs3 cs4 cs5 cs6 cs7 ef; do _ipt -A dscp_prerouting -m set --match-set omr-$class src,dst -m comment --comment "$class" -j DSCP --set-dscp-class "$class" _ipt -A dscp_prerouting -m set --match-set omr-$class src,dst -m comment --comment "$class" -j RETURN _ipt -A dscp_postrouting -m set --match-set omr-$class src,dst -m comment --comment "$class" -j DSCP --set-dscp-class "$class" @@ -78,13 +78,13 @@ _add_prerouting_chain() { _add_postrouting_chain() { _ipt -N "$1" - _ipt -I POSTROUTING -i "$lan_device" -j "$1" + _ipt -I POSTROUTING -j "$1" } _add_fwmark_chain() { _ipt -N dscp_mark _ipt -A PREROUTING -i "$lan_device" -j dscp_mark - _ipt -A POSTROUTING -i "$lan_device" -j dscp_mark + _ipt -A POSTROUTING -j dscp_mark for class in cs4 cs5 cs6 cs7; do # xtun (hex) -> 0x7874756e _ipt -A dscp_mark \ @@ -107,7 +107,7 @@ _remove_prerouting_chain() { _remove_postrouting_chain() { _ipt -F "$1" 2>/dev/null || return - _ipt -D POSTROUTING -i "$lan_device" -j "$1" + _ipt -D POSTROUTING -j "$1" _ipt -X "$1" } @@ -128,7 +128,7 @@ _setup_tunnel() { _cleanup() { _remove_prerouting_chain dscp_prerouting _remove_prerouting_chain dscp_mark - _remove_postouting_chain dscp_postrouting + _remove_postrouting_chain dscp_postrouting _remove_postrouting_chain dscp_mark _remove_output_chain dscp_output } diff --git a/luci-app-omr-dscp/root/etc/uci-defaults/dscp b/luci-app-omr-dscp/root/etc/uci-defaults/dscp deleted file mode 100755 index b0295c7f8..000000000 --- a/luci-app-omr-dscp/root/etc/uci-defaults/dscp +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -if [ "$(uci -q get dscp)" = "" ]; then - uci -q batch <<-EOF - add dscp classify - set dscp.@classify[0].direction='both' - set dscp.@classify[0].proto='icmp' - set dscp.@classify[0].class='cs5' - set dscp.@classify[0].comment='ICMP' - set dscp.@classify[1].direction='both' - set dscp.@classify[1].proto='udp' - set dscp.@classify[1].class='cs5' - set dscp.@classify[1].src_port='53,123,5353' - set dscp.@classify[1].comment='DNS udp and NTP' - set dscp.@classify[2].direction='both' - set dscp.@classify[2].proto='tcp' - set dscp.@classify[2].class='cs5' - set dscp.@classify[2].src_port='53,5353' - set dscp.@classify[2].comment='DNS tcp' - commit dscp - EOF -fi - -exit 0 \ No newline at end of file