1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Compare commits

...

1588 commits

Author SHA1 Message Date
Ycarus (Yannick Chabanois)
69d3d21b6b Fix issue when VPS have multiples IPs and last one is not working in openmptcprouter-vps init 2025-03-07 17:09:49 +01:00
Ycarus (Yannick Chabanois)
eae54dd7a2 Fix stop proxy redirection in case if restarted and still down 2025-03-04 16:34:32 +01:00
Ycarus (Yannick Chabanois)
ad7ecd87e2 Update luci-mod-network from OpenWRT 2025-03-04 15:12:55 +01:00
Ycarus (Yannick Chabanois)
c12e49844e Update Rust to 1.85.0 2025-02-26 11:00:37 +01:00
Ycarus (Yannick Chabanois)
a68cd6cbc7 Add a missing space in omr-tracker 2025-02-25 19:50:04 +01:00
Ycarus (Yannick Chabanois)
9e4fdc3420 Fix IPv6 in openmptcprouter-vps init script 2025-02-25 14:21:20 +01:00
Ycarus (Yannick Chabanois)
31f404e8a5 Fix typo to build z8102ax-emmc 2025-02-22 09:11:34 +01:00
Ycarus (Yannick Chabanois)
26af9f5abc Disable DHCP log 2025-02-21 20:51:26 +01:00
Ycarus (Yannick Chabanois)
29295ad744 Test for z8102 emmc support 2025-02-21 18:31:27 +01:00
Ycarus (Yannick Chabanois)
2895aa8dbd Do not configure lan4 and lan5 on z8109ax 2025-02-21 14:32:27 +01:00
Ycarus (Yannick Chabanois)
49681cc60d Do not reset modem when in registered mode in omr-tracker post-tracking error script 2025-02-20 17:39:06 +01:00
Ycarus (Yannick Chabanois)
c96a4d823f Update Rust to 1.84.0 2025-02-20 17:30:19 +01:00
Ycarus (Yannick Chabanois)
75f131b648 Fix send VPN IPs to VPS in openmptcprouter-vps init script 2025-02-20 16:43:46 +01:00
Ycarus (Yannick Chabanois)
ef81670d83 Change function to check is mbim/modemmanager is installed in luci-proto-mbim and luci-proto-modemmanager 2025-02-20 16:43:00 +01:00
Ycarus (Yannick Chabanois)
0fe39c99f3 Add glinet mt3000 2025-02-20 16:41:50 +01:00
Ycarus (Yannick Chabanois)
663eb52af9 Remove FW rules for shadowsocks* if down in all cases 2025-02-19 20:10:32 +01:00
Ycarus (Yannick Chabanois)
6b1c634a9f Add proper exit in firewall.*ray-rules 2025-02-18 20:00:58 +01:00
Ycarus (Yannick Chabanois)
4fbed72689 Add lan5 in omr-network default script 2025-02-18 20:00:23 +01:00
Ycarus (Yannick Chabanois)
25ed929191 Set modem path on z810* only if modems use ModemManager 2025-02-18 19:59:42 +01:00
Ycarus (Yannick Chabanois)
4904bf3f83 Add BPI-R4 network config 2025-02-18 14:06:57 +01:00
Ycarus (Yannick Chabanois)
ffe9f68064 Delete bridge created at boot in openmptcprouter uci-defaults omr-network script 2025-02-17 18:22:26 +01:00
Ycarus (Yannick Chabanois)
e262441c40 Fix VPN IP detection in omr-iperf 2025-02-17 14:59:23 +01:00
Ycarus (Yannick Chabanois)
47911635cf Add more drivers in openmptcprouter-full 2025-02-17 14:53:54 +01:00
Ycarus (Yannick Chabanois)
bd4da82070 Fix default gateway detection on multi VPN conf in omr-tracker post-tracking up script 2025-02-17 14:53:19 +01:00
Ycarus (Yannick Chabanois)
872f59b237 Remove ndpi disable box as nDPI is not available anymore in luci-app-openmptcprouter 2025-02-16 16:02:19 +01:00
Ycarus (Yannick Chabanois)
5f8fb6f177 Try to put back ethernet drivers 2025-02-16 16:00:45 +01:00
Ycarus (Yannick Chabanois)
a2a16e6947 Fix typo on compilation 2025-02-15 07:10:22 +01:00
Ycarus (Yannick Chabanois)
8485e1a131 Add gl-mt2500 2025-02-14 20:14:00 +01:00
Ycarus (Yannick Chabanois)
5e22d6484f Workaround to be able to access VPS IP from local network 2025-02-14 17:31:28 +01:00
Ycarus (Yannick Chabanois)
5274b22d63 Allow AT command without debug flag on ModemManager 2025-02-14 16:46:01 +01:00
Ycarus (Yannick Chabanois)
08e8f2ce44 Use logd 2025-02-14 15:54:09 +01:00
Ycarus (Yannick Chabanois)
10677c82c5 Add syslog-ng package 2025-02-14 15:15:27 +01:00
Ycarus (Yannick Chabanois)
6f54d07fcb Put correct interface state in omr-tracker post-tracking error and up scripts 2025-02-14 15:15:12 +01:00
Ycarus (Yannick Chabanois)
c143a6bdc2 Set servers if empty in dnsmasq 2025-02-14 15:14:27 +01:00
Ycarus (Yannick Chabanois)
3720e9b1a5 Disable smartdns by default 2025-02-14 14:36:16 +01:00
Ycarus (Yannick Chabanois)
5e94e170ed Add a default smartdns configuration 2025-02-14 12:42:55 +01:00
Ycarus (Yannick Chabanois)
e3ff7ac787 Update omr-iperf script to automatically use current VPS and add omr-iperf-proxy and omr-iperf-vpn to check speed using VPN or Proxy 2025-02-14 10:49:45 +01:00
Ycarus (Yannick Chabanois)
7688139d38 Fix openmptcprouter-api when no servers are reachable with dig 2025-02-13 16:33:45 +01:00
Ycarus (Yannick Chabanois)
e94d8fa775 Fix ping issue in omr-tracker when it ouput errors 2025-02-13 16:32:58 +01:00
Ycarus (Yannick Chabanois)
1b17e9c654 Disable autocomplete on luci-app-openmptcprouter wizard 2025-02-13 16:32:14 +01:00
Ycarus (Yannick Chabanois)
97fbf89ca3 Add more URL in omr-test-speed 2025-02-12 16:56:21 +01:00
Ycarus (Yannick Chabanois)
4ec92e8cca Add modems support for ZBT z8109ax 2025-02-11 17:05:35 +01:00
Ycarus (Yannick Chabanois)
e48c9b5957 Add alpha support for z8109ax 2025-02-10 11:00:19 +01:00
Ycarus (Yannick Chabanois)
4310806772 Changes in default network configuration 2025-02-07 17:39:58 +01:00
Ycarus (Yannick Chabanois)
49a1c4eda4 Add log info in omr-test-speed when server unreachable 2025-02-07 14:36:23 +01:00
Ycarus (Yannick Chabanois)
17f9abd483 Add restart function to z8102 init script 2025-02-07 14:35:37 +01:00
Ycarus (Yannick Chabanois)
dc18217c8e Clean code 2025-02-06 14:38:04 +01:00
Ycarus (Yannick Chabanois)
d4e7a680f1 Set services as enabled in omr-schedule services script 2025-02-06 14:33:53 +01:00
Ycarus (Yannick Chabanois)
93ec83c111 Add option enable/disable check of server is reachable by the connection 2025-02-06 14:32:18 +01:00
Ycarus (Yannick Chabanois)
863425d622 Add r5c compilation 2025-02-04 20:05:12 +01:00
Ycarus (Yannick Chabanois)
fe5aa58b3b Fix typo in omr-tracker 2025-01-31 18:51:24 +01:00
Ycarus (Yannick Chabanois)
718db38efe In openmptcprouter-vps script, reach API over all MPTCP enabled connection if not reachable by default GW 2025-01-31 18:24:41 +01:00
Ycarus (Yannick Chabanois)
26fdd7d28b Check in OMR-Tracker if server is reachable by a connection 2025-01-31 18:22:06 +01:00
Ycarus (Yannick Chabanois)
d047067c1f Fix apk check in openmptcprouter wizard interface 2025-01-31 15:19:45 +01:00
Ycarus (Yannick Chabanois)
78704ca980 Remove 6.12 restriction on OpenVPN-DCO 2025-01-31 15:02:30 +01:00
Ycarus (Yannick Chabanois)
6ad8563f7a Update OpenVPN DCO 2025-01-31 15:01:59 +01:00
Ycarus (Yannick Chabanois)
e8cda22282 Update OpenVPN 2025-01-31 15:01:31 +01:00
Ycarus (Yannick Chabanois)
8855058246 Update Xray 2025-01-31 15:01:19 +01:00
Ycarus (Yannick Chabanois)
74c8b1a285 Update v2ray 2025-01-31 15:00:56 +01:00
Ycarus (Yannick Chabanois)
4a60348586 Fix multipath Backup mode 2025-01-31 11:56:19 +01:00
Ycarus (Yannick Chabanois)
8581dcfc19 Update mptcpd 2025-01-31 09:51:59 +01:00
Ycarus (Yannick Chabanois)
fff6e52ed4 Update iperf3 with MPTCP and sock5 proxy support 2025-01-31 09:51:37 +01:00
Ycarus (Yannick Chabanois)
f83ffd5266 Update Golang 2025-01-31 09:35:38 +01:00
Ycarus (Yannick Chabanois)
8deaac50ef Add dbus tracking and fix a typo in omr-schedule services script 2025-01-30 15:02:35 +01:00
Ycarus (Yannick Chabanois)
0e066a37f8 Doesn't apply upnp firewall if not installed 2025-01-29 21:08:38 +01:00
Ycarus (Yannick Chabanois)
a435e2ebad Fix sysupgrade init script 2025-01-29 21:07:58 +01:00
Ycarus (Yannick Chabanois)
e8536cb839 Remove netifd fork 2025-01-29 18:14:35 +01:00
Ycarus (Yannick Chabanois)
0f0be7c8ca Use whois timeout in omr-tracker post-tracking status script 2025-01-27 19:33:47 +01:00
Ycarus (Yannick Chabanois)
ab3cbb9a48 Adapt sysupgrade init script to apk 2025-01-27 19:33:14 +01:00
Ycarus (Yannick Chabanois)
19aa4ac132 Remove opkg references in luci-mod-network 2025-01-27 19:32:44 +01:00
Ycarus (Yannick Chabanois)
32ad6d755c Remove opkg check in Shadowsocks-libev/rust interface 2025-01-27 19:31:26 +01:00
Ycarus (Yannick Chabanois)
7000aa16b4 Detect SQM & QoS installation using apk in openmptcprouter interface 2025-01-27 19:30:11 +01:00
Ycarus (Yannick Chabanois)
6185ad638a Add whois timeout setting in openmptcprouter interface 2025-01-27 19:29:25 +01:00
Ycarus (Yannick Chabanois)
16972ab574 Add check link quality to server in omr-tracker interface 2025-01-27 19:28:19 +01:00
Ycarus (Yannick Chabanois)
56b97f9cf3 Add help text for BPF MPTCP scheduler in MPTCP interface 2025-01-23 12:47:17 +01:00
Ycarus (Yannick Chabanois)
3744f3bdbf Add link quality checks in OMR-Tracker-Server 2025-01-23 12:46:50 +01:00
Ycarus (Yannick Chabanois)
09e0943ab4 Update Glorytun-TCP to be able to use MPTCP upstream 2025-01-17 17:33:18 +01:00
Ycarus (Yannick Chabanois)
4314c7a487 Set 5G modems for z8102ax via OMR-Tracker post-tracking initilize script 2025-01-17 12:47:52 +01:00
Ycarus (Yannick Chabanois)
f8e47a9fc5 Set 4G/5G modems on z8102 2025-01-17 11:03:15 +01:00
Ycarus (Yannick Chabanois)
fafeaf7502 Force lan interface device on initial config 2025-01-17 11:02:51 +01:00
Ycarus (Yannick Chabanois)
aa0f3ef0f5 Add option to disable Multipath check display 2025-01-16 16:55:09 +01:00
Ycarus (Yannick Chabanois)
fafc6a9cbb Reload omr-tracker in case of VPN interface change 2025-01-15 11:01:25 +01:00
Ycarus (Yannick Chabanois)
ed3bc7e666 Fix VPN device detection in omr-tracker 2025-01-15 10:59:41 +01:00
Ycarus (Yannick Chabanois)
ec30f4769d Little change in wifi page in luci-mod-network 2025-01-14 19:24:13 +01:00
Ycarus (Yannick Chabanois)
7a63841f86 A few changes and better description in OMR-ByPass interface 2025-01-14 19:23:33 +01:00
Ycarus (Yannick Chabanois)
3daacde7bc Update iproute2 2025-01-14 19:23:15 +01:00
Ycarus (Yannick Chabanois)
d1f504de31 Fix https://github.com/Ysurac/openmptcprouter/issues/3755 2025-01-11 07:19:17 +01:00
Ycarus (Yannick Chabanois)
a40762f9c9 Fix typo in luci-app-openmptcprouter 2025-01-10 19:18:19 +01:00
Ycarus (Yannick Chabanois)
8b4fdc35e3 Update Shadowsocks-Rust 2025-01-10 10:35:47 +01:00
Ycarus (Yannick Chabanois)
3634433c68 Disable fast-open on Shadowsocks-Rust: aggregation is not working with this 2025-01-10 10:35:27 +01:00
Ycarus (Yannick Chabanois)
1054b96488 Fix gateway issue if not in same subnet and IPv6 problem in mptcp init script 2025-01-08 16:50:42 +01:00
Ycarus (Yannick Chabanois)
5eee6609e4 Fix z8102ax modems settings 2025-01-08 14:51:35 +01:00
Ycarus (Yannick Chabanois)
b5ff774166 Try to fix OMR-Tracker for PPPoE 2025-01-06 18:21:59 +01:00
Ycarus (Yannick Chabanois)
4d12d6cb46 Add default settings for z8102ax 5G modems 2025-01-06 17:30:36 +01:00
Ycarus (Yannick Chabanois)
4e53b25d0b Disable master selection option in OpenMPTCProuter interface 2025-01-06 17:30:04 +01:00
Ycarus (Yannick Chabanois)
45bff4d322 Remove openclash shortcut in luci-theme-design 2025-01-06 17:29:24 +01:00
Ycarus (Yannick Chabanois)
5eef469120 Fix Shadowsocks-libev compilation with mbedtls3 2025-01-06 17:28:54 +01:00
Ycarus (Yannick Chabanois)
f270889d32 Fix VPN route in omr-tracker post-tracking 002-error script 2025-01-03 17:44:06 +01:00
Ycarus (Yannick Chabanois)
09e91b2fb8 Remove compilation for 5.4 and add 6.12 2025-01-03 10:50:35 +01:00
Ycarus (Yannick Chabanois)
28b1fb7341 remove v2ray restriction in openmptcprouter-full 2025-01-02 19:43:52 +01:00
Ycarus (Yannick Chabanois)
def156816f Add MPTCP bpf minRTT scheduler 2025-01-02 17:27:15 +01:00
Ycarus (Yannick Chabanois)
92b2e9d2d1 Fix openmptcprouter-full makefile 2025-01-02 15:08:34 +01:00
Ycarus (Yannick Chabanois)
4adc717187 Add gl-mt6000 compilation 2025-01-02 11:27:43 +01:00
Ycarus (Yannick Chabanois)
99d1e9f2cb Remove v2ray on r7800 2024-12-30 19:26:48 +01:00
Ycarus (Yannick Chabanois)
1cc8fcd8ba No reload of omr-bypass when nft is used 2024-12-30 14:39:05 +01:00
Ycarus (Yannick Chabanois)
3406c9d661 Restart omr-bypass on reload 2024-12-27 10:54:31 +01:00
Ycarus (Yannick Chabanois)
93ef6013ec Fix luci MPTCP app 2024-12-26 18:22:19 +01:00
Ycarus (Yannick Chabanois)
77b7adee49 Fix OpenVPN multi process 2024-12-26 10:19:40 +01:00
Ycarus (Yannick Chabanois)
5a3e8ccff8 Fix omr-bypass 2024-12-26 10:19:02 +01:00
Ycarus (Yannick Chabanois)
4457e58f5c Update bcm27xx-utils 2024-12-26 10:18:42 +01:00
Ycarus (Yannick Chabanois)
6bf803f927 Add Upload test support to omr-speedtest 2024-12-19 17:59:53 +01:00
Ycarus (Yannick Chabanois)
7bd47e4502 Fix omr-speedtest 2024-12-19 16:59:43 +01:00
Ycarus (Yannick Chabanois)
8b39370e9b Use same script for omr-test-speed and omr-test-speedv6. Check if the path answer else try another server 2024-12-19 16:21:18 +01:00
Ycarus (Yannick Chabanois)
1f793f4612 Disable OpenVPN multi process by default for now 2024-12-19 11:24:31 +01:00
Ycarus (Yannick Chabanois)
d14c473e7d Add support for apk in default config 2024-12-18 16:56:13 +01:00
Ycarus (Yannick Chabanois)
0db3dff442 Add OpenVPN multi process support 2024-12-18 16:55:47 +01:00
Ycarus (Yannick Chabanois)
b531347431 Use previous device if current device is unknown in 002-error post-tracking script of omr-tracker 2024-12-13 19:43:42 +01:00
Ycarus (Yannick Chabanois)
be703c65ad Get previous device if device is not detected by OMR-Tracker 2024-12-13 19:41:11 +01:00
Ycarus (Yannick Chabanois)
c5d7e934c6 Fix default TCP Congestion text in MPTCP interface 2024-12-13 19:40:11 +01:00
Ycarus (Yannick Chabanois)
aebd8d3e1a Do not display v2ray/xray in table in luci-app-firewall 2024-12-11 17:29:22 +01:00
Ycarus (Yannick Chabanois)
679b730075 Changes to luci-app-firewall 2024-12-11 16:54:21 +01:00
Ycarus (Yannick Chabanois)
f700f2ef26 Add luci-app-firewall 2024-12-11 16:53:25 +01:00
Ycarus (Yannick Chabanois)
ed5e82507c Remove luci-app-firewall fork 2024-12-11 16:52:50 +01:00
Ycarus (Yannick Chabanois)
bc68e4194a Commit firewall changes in /etc/firewall.omr-server only if there is real changes 2024-12-10 16:37:39 +01:00
Ycarus (Yannick Chabanois)
e5046ae632 blocklanfw script is not yet migrated to nft, ignore it when nft is used 2024-12-10 16:37:06 +01:00
Ycarus (Yannick Chabanois)
bf18da86f6 Reload mptcp in more case 2024-12-10 16:36:34 +01:00
Ycarus (Yannick Chabanois)
c289935422 Limit dnsmasq and unbound listening interfaces and remove old hidden config files in OMR-Schedule script 2024-12-10 15:32:18 +01:00
Ycarus (Yannick Chabanois)
c269268e00 Fix OMR-ByPass protocols/services issues 2024-12-09 15:32:01 +01:00
Ycarus (Yannick Chabanois)
5b5805c1b9 Fix Glorytun-UDP cnfig 2024-12-06 19:31:31 +01:00
Ycarus (Yannick Chabanois)
3ce139d051 Fix glorytun-udp package 2024-12-06 15:04:10 +01:00
Ycarus (Yannick Chabanois)
88863e42da Remove luci-app-snmpd 2024-12-06 14:54:06 +01:00
Ycarus (Yannick Chabanois)
4e08bcc1b2 Remove not needed files on openmptcprouter-api package 2024-12-06 14:48:36 +01:00
Ycarus (Yannick Chabanois)
7e85c4751d Update mptcpd 2024-12-06 14:47:31 +01:00
Ycarus (Yannick Chabanois)
f225e0f898 Fix packages version for apk compatibility 2024-12-06 14:47:16 +01:00
Ycarus (Yannick Chabanois)
dc85df4d2a Update cryptodev 2024-12-06 11:04:49 +01:00
Ycarus (Yannick Chabanois)
6cacf2cc06 Add smartdns 2024-12-06 11:03:38 +01:00
Ycarus (Yannick Chabanois)
8e1a2e2dc7 Remove https-dns-proxy 2024-12-06 11:03:16 +01:00
Ycarus (Yannick Chabanois)
1b33b3fd02 Some fixes on OMR-ByPass 2024-12-04 14:40:26 +01:00
Ycarus (Yannick Chabanois)
02ba2a9e8b Add Captive Portal URLs check in available OMR-ByPass services 2024-12-02 10:20:51 +01:00
Ycarus (Yannick Chabanois)
416af94918 In OMR-Tracker, Post-Tracking, 003-up script always check connection state even if no status changes 2024-12-02 10:19:51 +01:00
Ycarus (Yannick Chabanois)
2cef60a0c5 Remove error for some alias interface in omr-bypass 2024-11-29 10:42:05 +01:00
Ycarus (Yannick Chabanois)
c1c6366122 No output on multipath and add a log on tracker reload in OMR-Tracker post-tracking initialize script 2024-11-28 15:51:03 +01:00
Ycarus (Yannick Chabanois)
4b751558b4 No output on multipath command in init.d/mptcp 2024-11-28 15:50:00 +01:00
Ycarus (Yannick Chabanois)
004851d2db MPTCP reload via hotplug only when needed 2024-11-28 15:49:23 +01:00
Ycarus (Yannick Chabanois)
b9a7eeb5ee Fix for BananaPi missing modules 2024-11-26 19:22:17 +01:00
Ycarus (Yannick Chabanois)
ec9e8905b5 Fix: use ssserver binary for server on Shadowsocks-Rust 2024-11-26 14:31:17 +01:00
Ycarus (Yannick Chabanois)
4a4ab3d746 Reload MPTCP config when interface is up 2024-11-26 14:30:39 +01:00
Ycarus (Yannick Chabanois)
5dc6df3858 Fix R2S support 2024-11-26 09:03:38 +01:00
Ycarus (Yannick Chabanois)
35e4ead594 Fix hotplug actions send by OMR-Tracker Post-Tracking scripts 2024-11-24 07:41:02 +01:00
Ycarus (Yannick Chabanois)
567d6a3e00 Fix Shadowsocks-Rust 2024-11-24 07:40:16 +01:00
Ycarus (Yannick Chabanois)
660e84c205 Add routes for all interfaces even when multipath is off in /etc/init.d/mptcp 2024-11-22 12:01:30 +01:00
Ycarus (Yannick Chabanois)
f9e4c3cf0e Fix mptcp BPF scheduler 2024-11-22 11:16:38 +01:00
Ycarus (Yannick Chabanois)
591b89c551 Force eth0 on LAN for banana-pi R3 2024-11-22 09:46:39 +01:00
Ycarus (Yannick Chabanois)
a26255203e Disable 9998 metric set when Multipath off 2024-11-22 09:46:07 +01:00
Ycarus (Yannick Chabanois)
3d8b9360b4 Fix MPTCP BPF Scheduler and use ip4table 2024-11-20 20:09:06 +01:00
Ycarus (Yannick Chabanois)
051d9432b7 Fix r4s image 2024-11-20 20:08:32 +01:00
Ycarus (Yannick Chabanois)
96a10d87ff Fix Shadowsocks-Rust ss-tunnel 2024-11-18 16:51:45 +01:00
Ycarus (Yannick Chabanois)
273c97c26a Fix Shadowsocks-rust init script 2024-11-18 15:28:09 +01:00
Ycarus (Yannick Chabanois)
7a89fb070a Add Link Quality check support for httping in OMR-Tracker 2024-11-15 17:31:15 +01:00
Ycarus (Yannick Chabanois)
d4e18ee799 Separate XRay and V2Ray key in wizard, add V2Ray/XRay UDP activation in Wizard page 2024-11-15 17:30:15 +01:00
Ycarus (Yannick Chabanois)
0b3b88ab95 Fix OMR-Tracker Post tracking error script 2024-11-15 16:37:22 +01:00
Ycarus (Yannick Chabanois)
444c99c595 Add Led managment in post tracking script 2024-11-15 09:29:23 +01:00
Ycarus (Yannick Chabanois)
857c7503be Put all functions used in OMR-Tracker Post Tracking in a lib separate file 2024-11-15 09:29:00 +01:00
Ycarus (Yannick Chabanois)
7e56a0f417 Use Shadowsocks-libev or Shadowsocks-rust config for limit to LAN 2024-11-14 17:55:43 +01:00
Ycarus (Yannick Chabanois)
900dd5db0c Fix kernel detection in init scripts 2024-11-14 17:55:13 +01:00
Ycarus (Yannick Chabanois)
535d1e08f5 Fix interfaces list to listen only to LAN for Proxy 2024-11-14 17:53:46 +01:00
Ycarus (Yannick Chabanois)
cee2ec000c xtables-addons patches is needed since at least kernel 6.10 2024-11-13 16:58:07 +01:00
Ycarus (Yannick Chabanois)
20b12a83bd For upnp disable 2024-11-13 16:57:34 +01:00
Ycarus (Yannick Chabanois)
ba9e0f663b Fix Link Quality check in OMR-Tracker 2024-11-13 16:57:07 +01:00
Ycarus (Yannick Chabanois)
3bd08043ff Fix https://github.com/Ysurac/openmptcprouter/issues/3649 on backup config to VPS 2024-11-13 16:56:44 +01:00
Ycarus (Yannick Chabanois)
b82f4ca141 Force public IP info update on wizard change 2024-11-12 14:09:34 +01:00
Ycarus (Yannick Chabanois)
ec7cfe4ad5 Update mptcpd 2024-11-12 11:44:54 +01:00
Ycarus (Yannick Chabanois)
a695ad5a4f Doesn't disable txqueuelen on RPI5 2024-11-12 11:44:15 +01:00
Ycarus (Yannick Chabanois)
4df5fb7360 Fix https://github.com/Ysurac/openmptcprouter/issues/3646 Shadowsocks-Rust ss_tunnel 2024-11-12 11:43:19 +01:00
Ycarus (Yannick Chabanois)
2e1d9b7207 Update iproute2 2024-11-12 10:55:14 +01:00
Ycarus (Yannick Chabanois)
d67d591293 Update OpenVPN 2024-11-12 10:54:56 +01:00
Ycarus (Yannick Chabanois)
d284236c98 Fix previous fix as IP 2024-11-08 10:39:07 +01:00
Ycarus (Yannick Chabanois)
fac5855bbe Update public IP/proxy IP more often 2024-11-08 10:34:12 +01:00
Ycarus (Yannick Chabanois)
d883e569b4 Disable luci-mod-rpc due to https://nvd.nist.gov/vuln/detail/CVE-2024-51240 2024-11-07 20:04:25 +01:00
Ycarus (Yannick Chabanois)
92ad8fc0e0 Add bpi-r3 compilation 2024-11-06 10:51:27 +01:00
Ycarus (Yannick Chabanois)
277b246b43 Update XRay 2024-11-05 19:50:05 +01:00
Ycarus (Yannick Chabanois)
1f5f0a7061 Add compilation for bpi-r4 and bpi-r4-poe 2024-11-05 19:49:43 +01:00
Ycarus (Yannick Chabanois)
3442b90486 Update ShadowSocks-Rust 2024-11-05 14:38:03 +01:00
Ycarus (Yannick Chabanois)
59d0359b17 Fix OpenVPN MTU 2024-11-05 14:37:44 +01:00
Ycarus (Yannick Chabanois)
e0a6ae3d4e Update OMR-ByPass domains and IPs 2024-11-05 14:37:23 +01:00
Ycarus (Yannick Chabanois)
77f1deb120 Increase MPTCP add addr 2024-11-05 14:36:49 +01:00
Ycarus (Yannick Chabanois)
006a50aef6 Increase VPS API request timeout 2024-11-05 14:35:57 +01:00
Ycarus (Yannick Chabanois)
e135cb4261 Add entrypoint to get GPS data from ModemManager API 2024-10-31 14:42:18 +01:00
Ycarus (Yannick Chabanois)
11d48ae4f5 Update XRay 2024-10-31 14:41:49 +01:00
Ycarus (Yannick Chabanois)
d28b01e8f0 Update bcm27xx-eeprom 2024-10-31 14:41:28 +01:00
Ycarus (Yannick Chabanois)
93e875c969 Add leds scripts fir server and proxy 2024-10-29 10:13:10 +01:00
Ycarus (Yannick Chabanois)
8eb8b22a56 Add Proxy/VPN status report via Led 2024-10-29 09:53:24 +01:00
Ycarus (Yannick Chabanois)
b0c5e22d34 Add a common proxy-post-tracking.d directory for all proxy 2024-10-29 09:36:29 +01:00
Ycarus (Yannick Chabanois)
9fc63c1efb Force nptd 2024-10-29 09:35:20 +01:00
Ycarus (Yannick Chabanois)
d11f409225 Update TTL settings to nftables 2024-10-29 09:34:53 +01:00
Ycarus (Yannick Chabanois)
ebce49935a Add ACL for ModemManager Ubus 2024-10-29 09:34:12 +01:00
Ycarus (Yannick Chabanois)
ab045f47ce Fix when VPN is back UP 2024-10-24 10:22:12 +02:00
Ycarus (Yannick Chabanois)
3cf3663892 Update ModemManager 2024-10-22 15:46:43 +02:00
Ycarus (Yannick Chabanois)
7cdfa10a74 Add Initial EPS support for ModemManager interface 2024-10-22 15:46:08 +02:00
Ycarus (Yannick Chabanois)
2313389e87 Better log on MPTCP reload in OMR-Tracker Post-tracking up script 2024-10-22 09:47:29 +02:00
Ycarus (Yannick Chabanois)
cea30ba80d Fix Shadowsocks-Rust compilation on kernel 5.4 2024-10-22 09:46:50 +02:00
Ycarus (Yannick Chabanois)
fd1c2403a5 Fix wireless interface 2024-10-21 15:26:28 +02:00
Ycarus (Yannick Chabanois)
cd9f6bc29e Reload MPTCP when IP change or after connection status change 2024-10-18 17:32:15 +02:00
Ycarus (Yannick Chabanois)
7d7b72171a Fix https://github.com/Ysurac/openmptcprouter/issues/3601 2024-10-18 15:51:21 +02:00
Ycarus (Yannick Chabanois)
ccee1391b9 Fix rust patch 2024-10-16 14:40:47 +02:00
Ycarus (Yannick Chabanois)
4f1ef2a387 Fix rust package 2024-10-16 14:26:04 +02:00
Ycarus (Yannick Chabanois)
e3c2aa1b65 Enable DSCP rules 2024-10-16 12:12:47 +02:00
Ycarus (Yannick Chabanois)
6397e9aa44 Fix no ipv6 support 2024-10-16 12:12:31 +02:00
Ycarus (Yannick Chabanois)
60833be89d Update Rust 2024-10-16 12:12:09 +02:00
Ycarus (Yannick Chabanois)
ead6ba3a57 Fix Sky in OMR-ByPass 2024-10-15 17:14:10 +02:00
Ycarus (Yannick Chabanois)
d0dbc9f1bb Move ASN init at the end of OMR-ByPass init 2024-10-15 17:13:53 +02:00
Ycarus (Yannick Chabanois)
32375110ac Force enable on some OMR-ByPass rules 2024-10-14 15:03:36 +02:00
Ycarus (Yannick Chabanois)
9a8d72f6c8 Add proto in rule for OMR-ByPass 2024-10-12 08:27:37 +02:00
Ycarus (Yannick Chabanois)
0580c54e34 Fix omr-ip-intf for IPv4 mapped IPv6 2024-10-12 08:27:13 +02:00
Ycarus (Yannick Chabanois)
7ee744a7c2 Fix Wireless page on kernel 5.4 2024-10-12 08:26:05 +02:00
Ycarus (Yannick Chabanois)
0b1cc79c18 Block OpenVPN DCO on kernel 6.12 for now 2024-10-09 14:24:47 +02:00
Ycarus (Yannick Chabanois)
21d2b4c87c Add kmod-r8125 for rockchip 2024-10-09 14:24:19 +02:00
Ycarus (Yannick Chabanois)
53de5ab422 Fix for Kernel 6.12 2024-10-09 11:15:40 +02:00
Ycarus (Yannick Chabanois)
8f237144e7 Fix in OMR-ByPass to enable ACCEPT rule when it should be 2024-10-09 11:14:29 +02:00
Ycarus (Yannick Chabanois)
89da647175 Fix ByPass route table when master interface is used 2024-10-09 11:13:45 +02:00
Ycarus (Yannick Chabanois)
11681a878f Enable TCP Fast Open on Shadowsocks Rust by default 2024-10-09 11:12:42 +02:00
Ycarus (Yannick Chabanois)
43107110a5 Add keep alive support to Shadowsocks-Rust init and interface 2024-10-09 11:08:54 +02:00
Ycarus (Yannick Chabanois)
ef3eaf6ed1 Change init order for z8102 2024-10-04 17:48:46 +02:00
Ycarus (Yannick Chabanois)
0519dff9d0 Add kernel 6.12 changes 2024-10-04 17:48:10 +02:00
Ycarus (Yannick Chabanois)
9d261ee572 Add firewall.user script with firewall4 2024-10-04 17:47:34 +02:00
Ycarus (Yannick Chabanois)
ffbd7bbd72 Check Multipath support every 10 minutes 2024-10-03 11:45:05 +02:00
Ycarus (Yannick Chabanois)
ca25b1c23c Fix proxy restrict listen to LAN with VLAN 2024-10-03 10:58:26 +02:00
Ycarus (Yannick Chabanois)
ca8c295c3c Fix Multipath support detection 2024-10-03 10:56:48 +02:00
Ycarus (Yannick Chabanois)
6d1b64d14d Replace ifconfig by ip 2024-10-03 07:55:42 +02:00
Ycarus (Yannick Chabanois)
c29ba0d55d Update xtables-addons 2024-09-30 09:07:58 +02:00
Ycarus (Yannick Chabanois)
c5f157eddd Add OpenVPN DCO 6.11 support 2024-09-30 09:07:04 +02:00
Ycarus (Yannick Chabanois)
213afba740 Update Shadowsocks-Rust 2024-09-30 09:00:49 +02:00
Ycarus (Yannick Chabanois)
3070ba2f14 Increase default failure interval in OMR-Tracker 2024-09-30 08:15:24 +02:00
Ycarus (Yannick Chabanois)
c52f6a6d23 Check if ModemManager is not disable before using or launching it 2024-09-30 08:14:43 +02:00
Ycarus (Yannick Chabanois)
af59ab5ad5 Add a setting to disable ModemManager 2024-09-30 08:11:14 +02:00
Ycarus (Yannick Chabanois)
6ab53ff26c Remove forked r8168 and r8125 2024-09-26 15:18:37 +02:00
Ycarus (Yannick Chabanois)
22bac88c36 Check if dsvpn exist before running script 2024-09-25 18:58:54 +02:00
Ycarus (Yannick Chabanois)
9309d5e376 Fix blocklanfw script 2024-09-25 18:58:26 +02:00
Ycarus (Yannick Chabanois)
414ccbc4d2 Try to fix uPnP 2024-09-23 15:26:19 +02:00
Ycarus (Yannick Chabanois)
698c94bf1d Add missing break in switch wan state in Status page 2024-09-20 19:55:37 +02:00
Ycarus (Yannick Chabanois)
8ae235cf3d Try to find why we have unknown status in some cases 2024-09-20 19:52:38 +02:00
Ycarus (Yannick Chabanois)
44b8789388 Remove OMR entry from DHCP IP Sets in Luci interface 2024-09-20 19:52:00 +02:00
Ycarus (Yannick Chabanois)
318ef2f7ae Do not keep /etc/nftables.d/* on upgrade 2024-09-20 15:22:14 +02:00
Ycarus (Yannick Chabanois)
5bf1d8243a Restart interface at the end of OMR-Tracker post-tracking error script and disable for OMRVPN 2024-09-20 08:58:14 +02:00
Ycarus (Yannick Chabanois)
6ac3d8c200 Fix disabling pihole when VPN is down 2024-09-19 10:28:58 +02:00
Ycarus (Yannick Chabanois)
ef0040e56f Increase default sleep on ModemManager modem restart and add it as a parameter in network luci interface 2024-09-18 19:38:52 +02:00
Ycarus (Yannick Chabanois)
c525e9c9f2 Fix for some device name in omr-bypass 2024-09-18 19:37:35 +02:00
Ycarus (Yannick Chabanois)
ce640fb56c Force remove DNS on multipath interface and commit only if there is changes in mptcp init script 2024-09-18 19:37:01 +02:00
Ycarus (Yannick Chabanois)
ef6122f316 Fix OMR6in4 settings in interface 2024-09-18 19:36:14 +02:00
Ycarus (Yannick Chabanois)
cefc5f9291 Fix omr-bypass with some V2Ray/XRay protocol 2024-09-17 18:30:31 +02:00
Ycarus (Yannick Chabanois)
503cce1748 Add restriction for kernel 6.11 2024-09-16 15:48:31 +02:00
Ycarus (Yannick Chabanois)
e25fe06783 Update ModemManager 2024-09-16 15:47:33 +02:00
Ycarus (Yannick Chabanois)
f6df64a92b Set a setting when modem is up but doesn't work in OMR-Tracker post-tracking error & up script 2024-09-16 08:08:28 +02:00
Ycarus (Yannick Chabanois)
c9c2c4e269 Add missing Shadowsocks-Rust config in wizard 2024-09-13 20:42:16 +02:00
Ycarus (Yannick Chabanois)
2c82486ac2 Fix mptcp init script when an interface is specified 2024-09-13 20:41:36 +02:00
Ycarus (Yannick Chabanois)
5217b2629a Increase maximum number of concurrent DNS queries for dnsmasq 2024-09-12 16:43:36 +02:00
Ycarus (Yannick Chabanois)
3362c5231e Fix omr-tracker reload/restart with parameter 2024-09-12 16:42:40 +02:00
Ycarus (Yannick Chabanois)
b1a32ce3b3 Faster detection of link down in OMR-Tracker 2024-09-11 13:39:34 +02:00
Ycarus (Yannick Chabanois)
1e705d2cb5 Check if we have a return from mmcli -L before using it in Wizard 2024-09-11 08:35:15 +02:00
Ycarus (Yannick Chabanois)
3a7669aef0 Move sysupgrade init script to openmptcprouter package 2024-09-10 19:43:54 +02:00
Ycarus (Yannick Chabanois)
9a39424c97 Fix reinstall packages after update 2024-09-10 19:42:32 +02:00
Ycarus (Yannick Chabanois)
d5cd3b6d16 No reload of ShadowSocks * on WAN interface status change 2024-09-10 18:12:27 +02:00
Ycarus (Yannick Chabanois)
d95ffba66c Less not useful log in openmptcprouter-vps init script 2024-09-10 18:11:06 +02:00
Ycarus (Yannick Chabanois)
2b64a62e90 Add Shadowsocks-Rust support in mptcpovervpn init script 2024-09-10 18:09:53 +02:00
Ycarus (Yannick Chabanois)
971d82b5d6 Add a sleep in restart of OMR-Tracker init 2024-09-10 18:08:56 +02:00
Ycarus (Yannick Chabanois)
a65ee46939 Ignore loopback and only work on specified interface in MPTCP init script 2024-09-10 18:08:26 +02:00
Ycarus (Yannick Chabanois)
b65f8f51a8 Shadowsock-Rust is the default in OpenMPTCProuter wizard 2024-09-10 18:07:12 +02:00
Ycarus (Yannick Chabanois)
f89def4eff Update bcm27xx-eeprom 2024-09-10 08:29:27 +02:00
Ycarus (Yannick Chabanois)
9977ddac7e No need to compile for kernel 6.1 anymore 2024-09-09 14:59:14 +02:00
Ycarus (Yannick Chabanois)
71522c3998 Move latest version request to schedule script 2024-09-06 14:14:57 +02:00
Ycarus (Yannick Chabanois)
1421ef88e6 remove MPTCP BPF scheduler on r7800 2024-09-06 07:43:44 +02:00
Ycarus (Yannick Chabanois)
4e228fd6f5 Remove DHCP on interface OMRVPN by default 2024-09-05 15:01:45 +02:00
Ycarus (Yannick Chabanois)
43f4d52f09 Add MPTCP BPF scheduler on anything that is not kernel 5.4/6.1 or ramips 2024-09-05 15:01:13 +02:00
Ycarus (Yannick Chabanois)
6272837d37 Check if Shadowsocks status is correc tin OMR-Tracker-ss 2024-09-05 15:00:26 +02:00
Ycarus (Yannick Chabanois)
962b9ad7eb Add luci-theme-bootstrap 2024-09-04 09:28:47 +02:00
Ycarus (Yannick Chabanois)
54d408d97c Fix on Openmptcprouter-vps script when v2ray/xray are not installed 2024-09-04 09:28:28 +02:00
Ycarus (Yannick Chabanois)
96f593be3e Add luci-theme-material 2024-09-02 17:52:44 +02:00
Ycarus (Yannick Chabanois)
55b951afc1 Fix unbound status check in OMR-Schedule 2024-09-02 17:52:26 +02:00
Ycarus (Yannick Chabanois)
bdee3d1794 Fix ShadowSocks-Rust check on key instead of password field 2024-09-02 14:24:35 +02:00
Ycarus (Yannick Chabanois)
c10983f2de Fix ping error in OMR-Tracker-server 2024-09-02 09:44:13 +02:00
Ycarus (Yannick Chabanois)
aa566bf3a6 Update XRay 2024-08-30 17:03:02 +02:00
Ycarus (Yannick Chabanois)
b1a4cc8783 Various changes in OMR-Tracker for optimization 2024-08-30 17:02:31 +02:00
Ycarus (Yannick Chabanois)
da55fcb051 Small changes in OMR-Schedule service script 2024-08-30 17:01:39 +02:00
Ycarus (Yannick Chabanois)
03e3bc4404 Detect if interface is up via another method in omr-tracker 2024-08-28 20:24:06 +02:00
Ycarus (Yannick Chabanois)
f0f710123d Remove unused setting in omr6in4 for firewall 2024-08-28 20:23:27 +02:00
Ycarus (Yannick Chabanois)
8a73c7f993 Remove unused setting in firewall 2024-08-28 20:22:53 +02:00
Ycarus (Yannick Chabanois)
aa1a5ed651 Disable DCO on OpenVPN MPTCP over VPN as DCO is not available for now on latest VPS kernels 2024-08-28 17:45:39 +02:00
Ycarus (Yannick Chabanois)
c483ee357e Fix OMR-DSCP 2024-08-28 17:44:34 +02:00
Ycarus (Yannick Chabanois)
c7489f6e69 Fix tcptraceroute package 2024-08-27 16:48:47 +02:00
Ycarus (Yannick Chabanois)
f88ea435f4 Use github as source for tcptraceroute 2024-08-27 16:32:10 +02:00
Ycarus (Yannick Chabanois)
fa7bcc89ce Update libqmi 2024-08-27 15:28:09 +02:00
Ycarus (Yannick Chabanois)
f1de6e682d Update libmbim 2024-08-27 15:27:55 +02:00
Ycarus (Yannick Chabanois)
bf8cc3b4db Add a timeout on all resolveip requests 2024-08-27 09:33:23 +02:00
Ycarus (Yannick Chabanois)
f2546261fe Fix and optimize OMR-Tracker 2024-08-27 09:30:30 +02:00
Ycarus (Yannick Chabanois)
a36a5f7563 Fix ModemManager auth support 2024-08-27 09:30:03 +02:00
Ycarus (Yannick Chabanois)
b0de760f6c Add Wireless OCV support 2024-08-27 09:29:31 +02:00
Ycarus (Yannick Chabanois)
cd0589e499 Update ModemManager 2024-08-27 09:28:36 +02:00
Ycarus (Yannick Chabanois)
94e3ec9172 Update Shadowsocks-Rust 2024-08-21 20:15:41 +02:00
Ycarus (Yannick Chabanois)
2318ac80cc reset modem when in registered state 2024-08-21 20:15:23 +02:00
Ycarus (Yannick Chabanois)
a9062dc0eb Get both tech used in case of 5G NSA with ModemManager 2024-08-20 20:14:16 +02:00
Ycarus (Yannick Chabanois)
b78f2340b2 Check if multipath is enabled before doing something with it 2024-08-20 20:12:59 +02:00
Ycarus (Yannick Chabanois)
6b789fd728 Make MPTCP gbal status read only in MPTCP interface 2024-08-20 20:11:07 +02:00
Ycarus (Yannick Chabanois)
2f62cd9226 Fix Shadowsocks-go and lanips check in OpenMPTCProuter-vps script 2024-08-19 17:25:58 +02:00
Ycarus (Yannick Chabanois)
4f0139e9e9 No MPTCP reload on public IP change in OMR-Tracker Post-Tracking status script 2024-08-16 20:46:43 +02:00
Ycarus (Yannick Chabanois)
fece63d118 Disable OpenVPN DCO for kernel 6.10 2024-08-16 17:23:39 +02:00
Ycarus (Yannick Chabanois)
b54fab6077 Check if ping result is not empty in OMR-Tracker server 2024-08-16 17:12:52 +02:00
Ycarus (Yannick Chabanois)
ac6fb86290 Update ModemManager 2024-08-12 16:40:20 +02:00
Ycarus (Yannick Chabanois)
c87833f57a Update libmbim 2024-08-12 16:40:03 +02:00
Ycarus (Yannick Chabanois)
6c28428ed9 Update XRay 2024-08-12 14:51:32 +02:00
Ycarus (Yannick Chabanois)
7b43a9258d Update Shadowsocks-Rust 2024-08-12 14:51:16 +02:00
Ycarus (Yannick Chabanois)
31ed3b3b7b Fix luci-app-mptcp for 5.4 2024-08-10 20:43:44 +02:00
Ycarus (Yannick Chabanois)
2f5a74c8d2 Move mptcp js from luci-app-mptcp 2024-08-10 11:32:17 +02:00
Ycarus (Yannick Chabanois)
6bd5ca722f Increase timeout on unknown server for unbound 2024-08-08 20:54:30 +02:00
Ycarus (Yannick Chabanois)
2008998bf8 Remove not needed line in omr-tracker-server 2024-08-08 20:53:59 +02:00
Ycarus (Yannick Chabanois)
7561ee1dfe Move unbound check before dnsmasq and add more tries 2024-08-08 20:53:32 +02:00
Ycarus (Yannick Chabanois)
52d27b53bf Convert luci-app-mptcp from lua to js 2024-08-07 16:47:53 +02:00
Ycarus (Yannick Chabanois)
7374c17ae0 Add BPF for kernel 6.10 2024-08-07 14:19:28 +02:00
Ycarus (Yannick Chabanois)
30f5850e77 More check before restarting Shadowsocks firewall rules in OMR-Tracker ss 2024-08-07 14:18:54 +02:00
Ycarus (Yannick Chabanois)
557d37b0dd Add mptcp option by default to OpenVPN 2024-08-05 15:40:02 +02:00
Ycarus (Yannick Chabanois)
33905981ea Better server ping check in OpenMPTCProuter local API 2024-08-02 14:34:24 +02:00
Ycarus (Yannick Chabanois)
52e3e73d48 Set current server as current in OMR Tracker server 2024-08-02 14:32:04 +02:00
Ycarus (Yannick Chabanois)
cffa812ab6 No more warning state when ping to server fail 2024-08-02 08:47:04 +02:00
Ycarus (Yannick Chabanois)
3fde891a42 Enable IPv6 on interfaces if IPv6 enabled globally 2024-08-02 08:46:33 +02:00
Ycarus (Yannick Chabanois)
a575dc7bb5 Add more detailed info in status page 2024-08-02 08:46:00 +02:00
Ycarus (Yannick Chabanois)
f0010f6b03 Do not disable IPv6 2024-08-01 18:01:32 +02:00
Ycarus (Yannick Chabanois)
21f8a2e759 Fix and additionnal check on OpenMPTCProuter VPS script 2024-08-01 17:44:59 +02:00
Ycarus (Yannick Chabanois)
86edfa855d Add more check in openmptcprouter-vps init script 2024-08-01 17:12:27 +02:00
Ycarus (Yannick Chabanois)
02145da5a6 Add proxad.net to OMR-ByPass Free service 2024-08-01 17:11:58 +02:00
Ycarus (Yannick Chabanois)
e387bbedab Tune kernel settings 2024-08-01 12:01:05 +02:00
Ycarus (Yannick Chabanois)
d78a4af08e Check if proxy/VPN exist before setting config in OpenMPTCProuter-VPS script 2024-08-01 12:00:48 +02:00
Ycarus (Yannick Chabanois)
40d7f7d2a6 Fix loop when IP was existing and no more available in OMR-Tracker post tracking up script 2024-08-01 11:59:56 +02:00
Ycarus (Yannick Chabanois)
2311f95abe Fix on MPTCP init script 2024-08-01 11:59:13 +02:00
Ycarus (Yannick Chabanois)
c36b666666 Add type None, API only or Ping only to OMR-Tracker server 2024-08-01 11:58:46 +02:00
Ycarus (Yannick Chabanois)
cb906c82f4 Fix mptcp init script 2024-07-30 10:26:05 +02:00
Ycarus (Yannick Chabanois)
07f35db2d6 Do not display OMR-Tracker server errors in logs 2024-07-29 17:10:37 +02:00
Ycarus (Yannick Chabanois)
e7cf500244 Fix OMR-Tracker server 2024-07-29 16:53:06 +02:00
Ycarus (Yannick Chabanois)
493ad74c38 Remove some package on ramips and ipq806x arch 2024-07-27 16:19:10 +02:00
Ycarus (Yannick Chabanois)
59c1332301 Fix IPv6 route and add some logs in OMR-Tracker Post Tracking up script 2024-07-26 16:27:29 +02:00
Ycarus (Yannick Chabanois)
8730f78f86 Add libustream-openssl 2024-07-26 15:53:31 +02:00
Ycarus (Yannick Chabanois)
00ed5dcc63 Force OMR-Tracker to do IPv6 tests if IPv6 is enabled 2024-07-26 15:53:04 +02:00
Ycarus (Yannick Chabanois)
64db9c41a1 Add more logs on MPTCP reload 2024-07-26 12:05:41 +02:00
Ycarus (Yannick Chabanois)
38a4977a96 Fix MPTCP reload in post-tracking up script 2024-07-26 12:04:35 +02:00
Ycarus (Yannick Chabanois)
dbdea002f4 Do not reload service on openmptcprouter uci config when not needed 2024-07-25 15:45:07 +02:00
Ycarus (Yannick Chabanois)
bec9a3ce0a Commit less often in OMR-Tracker Post Tracking up script 2024-07-25 09:11:09 +02:00
Ycarus (Yannick Chabanois)
c34cb17a25 If API contact doesn't work also try a ping in OMR-Tracker Server 2024-07-25 09:10:28 +02:00
Ycarus (Yannick Chabanois)
0dc77c161a Increase ModemManager priority 2024-07-25 09:09:06 +02:00
Ycarus (Yannick Chabanois)
a1aa361e1e Remove VPN status initial value 2024-07-23 17:33:43 +02:00
Ycarus (Yannick Chabanois)
6ce9b2129b Add VPN status error 2024-07-23 17:31:44 +02:00
Ycarus (Yannick Chabanois)
9a1a2047af Fix server IP direct route 2024-07-23 17:31:29 +02:00
Ycarus (Yannick Chabanois)
4d80070251 Disable restrict to LAN on ShadowSocks* when VLAN is used 2024-07-22 15:58:43 +02:00
Ycarus (Yannick Chabanois)
9fb8a10be5 Update Shadowsocks-Rust 2024-07-18 14:04:56 +02:00
Ycarus (Yannick Chabanois)
57015c9835 Do not set IPv6 DSCP rules in dnsmasq if AAAA resolution is disabled 2024-07-18 14:03:51 +02:00
Ycarus (Yannick Chabanois)
e91a9e5c3d Some DSCP fixes 2024-07-17 11:14:46 +02:00
Ycarus (Yannick Chabanois)
462fbaae5a Manage the case when interface can't be binded in local API for status page 2024-07-16 09:50:31 +02:00
Ycarus (Yannick Chabanois)
643b87ec63 Fix typo on glorytun udp check and don't create route to server via omr6in4/omrvpn 2024-07-16 09:49:29 +02:00
Ycarus (Yannick Chabanois)
7fc99ca3bd Use named instance in omr-tracker interfaces 2024-07-16 09:48:29 +02:00
Ycarus (Yannick Chabanois)
98b3f85638 Add more log in OMR-Tracker-ss 2024-07-16 09:11:19 +02:00
Ycarus (Yannick Chabanois)
e02a8d8bd2 Fix latency report on OMR-Tracker when not binding to an interface 2024-07-16 09:10:53 +02:00
Ycarus (Yannick Chabanois)
245d1b43c4 Fix indentation 2024-07-16 09:10:17 +02:00
Ycarus (Yannick Chabanois)
8ce857cdd6 Fix packet loss check in OMR-Tracker 2024-07-09 17:26:00 +02:00
Ycarus (Yannick Chabanois)
67e9c6c46c Fix interface in routes in OMR-Tracker post-tracking up script 2024-07-09 17:16:09 +02:00
Ycarus (Yannick Chabanois)
6433f60533 Fix Shadowsocks* that is using wrong redir sometimes 2024-07-09 13:11:30 +02:00
Ycarus (Yannick Chabanois)
adb26ec322 Fix and clean some part of OMR-Tracker Post-tracking up script 2024-07-09 11:39:47 +02:00
Ycarus (Yannick Chabanois)
0947e7487a Add PLMN setting in ModemManager interface 2024-07-09 11:39:05 +02:00
Ycarus (Yannick Chabanois)
82ec5ca974 Remove old public ip set in openmptcprouter script 2024-07-08 17:07:29 +02:00
Ycarus (Yannick Chabanois)
941da91286 Fix route check in OMR-Tracker post-tracking up script 2024-07-08 17:07:05 +02:00
Ycarus (Yannick Chabanois)
99751c3674 Remove metric part already done in initialize OMR-Tracker post script 2024-07-05 16:03:51 +02:00
Ycarus (Yannick Chabanois)
b10ef6ed9d Get default gateway only if needed in error OMR-Tracker post script 2024-07-05 16:03:08 +02:00
Ycarus (Yannick Chabanois)
739fdc5dfa Remove disabled interface before anything in initialize OMR-Tracker post script 2024-07-05 16:02:36 +02:00
Ycarus (Yannick Chabanois)
e33bd66daf Small cleaning codes changes in OMR-Tracker scripts 2024-07-05 16:01:10 +02:00
Ycarus (Yannick Chabanois)
17f047fe01 ShadowSocks Rust init fix no output 2024-07-04 10:50:11 +02:00
Ycarus (Yannick Chabanois)
3caab17ed1 Prevent OpenVPN DCO on linux 6.10 2024-07-04 10:49:34 +02:00
Ycarus (Yannick Chabanois)
d051ac10be Update r8125 2024-07-04 10:48:53 +02:00
Ycarus (Yannick Chabanois)
c83c764b49 Prevent xtables-addons on linux 6.10 2024-07-04 10:48:31 +02:00
Ycarus (Yannick Chabanois)
c1f7c7d935 Fix no output redirection in some openmptcprouter scripts 2024-07-04 10:48:01 +02:00
Ycarus (Yannick Chabanois)
60f552fd68 Some changes in omr-tracker and post-tracking scripts 2024-07-04 10:46:32 +02:00
Ycarus (Yannick Chabanois)
ad1cbe6958 omr-schedule service script fix no output 2024-07-04 10:45:11 +02:00
Ycarus (Yannick Chabanois)
1457411c71 Prevent ndpi-netfilter2 on linux 6.10 2024-07-04 10:44:31 +02:00
Ycarus (Yannick Chabanois)
806c37be00 Small fixes in multipath command 2024-07-04 10:43:34 +02:00
Ycarus (Yannick Chabanois)
b316155a6b mptcp init fix no output 2024-07-04 10:43:14 +02:00
Ycarus (Yannick Chabanois)
85c57dca29 openmptcprouter init fix no output 2024-07-04 10:42:43 +02:00
Ycarus (Yannick Chabanois)
610f964b0a Set omr-6in4 only if VPN is up and some fixes 2024-07-04 10:41:59 +02:00
Ycarus (Yannick Chabanois)
0a876e4ce5 Remove help text in MPTCP interface 2024-07-04 10:40:57 +02:00
Ycarus (Yannick Chabanois)
0b2d0560a6 Add patch to bcm27xx-utils for compilation with kernel 5.4 2024-07-02 14:30:54 +02:00
Ycarus (Yannick Chabanois)
7343197a08 Don't use ping -B if not possible to bind on the interface in omr-tracker 2024-07-01 16:49:55 +02:00
Ycarus (Yannick Chabanois)
ab87b5f536 Divide post-tracking script in 3 smaller scripts and move script to omr-tracker package 2024-06-28 14:20:55 +02:00
Ycarus (Yannick Chabanois)
68277b56e0 Remove unused part in omr-tracker post tracking script 2024-06-28 14:19:01 +02:00
Ycarus (Yannick Chabanois)
82ecc58e28 Remove debug log in omr-6in4 2024-06-26 17:44:17 +02:00
Ycarus (Yannick Chabanois)
56e83988e5 Fixes on omr-6in4 2024-06-26 14:48:38 +02:00
Ycarus (Yannick Chabanois)
39507bd661 Update XRay 2024-06-25 14:49:43 +02:00
Ycarus (Yannick Chabanois)
7e6d5bf838 Update Shadowsocks-rust 2024-06-25 11:46:22 +02:00
Ycarus (Yannick Chabanois)
e96463b21a Link unbound to dnsmasq 2024-06-25 11:01:07 +02:00
Ycarus (Yannick Chabanois)
a4c26403b4 Restart unbound after server IP change 2024-06-25 11:00:43 +02:00
Ycarus (Yannick Chabanois)
e8869d75c1 Change check for dnsmasq state in omr schedule 2024-06-24 15:43:41 +02:00
Ycarus (Yannick Chabanois)
bf9a0a4e21 Force dnsmasq restart when setting IPs in omr-tracker-server 2024-06-24 15:43:13 +02:00
Ycarus (Yannick Chabanois)
b4ec9f6d3e Add sky service in omr-bypass 2024-06-24 11:49:27 +02:00
Ycarus (Yannick Chabanois)
31dbaed7a3 Fix Shadowsocks-Rust build on x86 2024-06-22 08:29:05 +02:00
Ycarus (Yannick Chabanois)
94fe73bb24 Remove pin-retry and use real number of allowed PIN tries in post-tracking script 2024-06-21 19:35:54 +02:00
Ycarus (Yannick Chabanois)
380117a155 Add force connection setting to ModemManager 2024-06-21 19:35:03 +02:00
Ycarus (Yannick Chabanois)
da1accdb06 Remove pin-retry setting 2024-06-21 19:34:24 +02:00
Ycarus (Yannick Chabanois)
eb214514b2 Remove typo in openmptcprouter-full 2024-06-21 19:33:41 +02:00
Ycarus (Yannick Chabanois)
bad75b2fde Add bcm27xx-utils 2024-06-19 19:23:34 +02:00
Ycarus (Yannick Chabanois)
39bccc349c Add sourcefilter support in luci-mod-network and various updates 2024-06-19 15:31:41 +02:00
Ycarus (Yannick Chabanois)
38c232e12b Add sourcefilter support to ModemManager 2024-06-19 15:31:10 +02:00
Ycarus (Yannick Chabanois)
bedd03c73c Update ModemManager 2024-06-19 15:30:49 +02:00
Ycarus (Yannick Chabanois)
554c70cdae Update libqmi 2024-06-19 15:30:28 +02:00
Ycarus (Yannick Chabanois)
e1aec9d2b7 Update libmbim 2024-06-19 15:30:13 +02:00
Ycarus (Yannick Chabanois)
95797d1eba Check that rules are really up in omr-tracker-ss 2024-06-18 17:08:31 +02:00
Ycarus (Yannick Chabanois)
6d8e55fe5f Fix for 5.4 compilation 2024-06-17 20:29:15 +02:00
Ycarus (Yannick Chabanois)
29317082ba Update Shadowsocks-Rust 2024-06-17 20:28:57 +02:00
Ycarus (Yannick Chabanois)
629bfce0c5 Add nft not available on 5.4 2024-06-17 20:28:35 +02:00
Ycarus (Yannick Chabanois)
f9296de108 Add nft not available on 5.4 2024-06-17 20:28:25 +02:00
Ycarus (Yannick Chabanois)
9c45295811 Force bpf to not be installed with kernel 5.4 2024-06-17 20:27:47 +02:00
Ycarus (Yannick Chabanois)
28f44d23c8 Fix shadowsocks-rust package 2024-06-14 21:00:12 +02:00
Ycarus (Yannick Chabanois)
74d58b691a Fix omr-tracker shadowsocks 2024-06-14 19:46:23 +02:00
Ycarus (Yannick Chabanois)
9a7ff72633 Use async to set PIN for ModemManager in post tracking script 2024-06-14 19:45:57 +02:00
Ycarus (Yannick Chabanois)
9e0178669e Start ModemManager earlier 2024-06-14 19:45:32 +02:00
Ycarus (Yannick Chabanois)
8755d07092 Revert to previous Shadowsocks-Rust release 2024-06-14 19:45:12 +02:00
Ycarus (Yannick Chabanois)
c22c569850 Enable modem if in disable state via post-tracking script 2024-06-13 20:01:09 +02:00
Ycarus (Yannick Chabanois)
91f4fc159b Do not disable modem in ModemManager on reconnect using feckert pull request to OpenWRT 2024-06-13 20:00:40 +02:00
Ycarus (Yannick Chabanois)
99067813a3 Add ModemManager status to ubus using feckert pull request to OpenWRT 2024-06-13 19:59:53 +02:00
Ycarus (Yannick Chabanois)
1dc85e8cff Change status update calculation 2024-06-13 14:31:58 +02:00
Ycarus (Yannick Chabanois)
a0990c1833 Use ModemManager functions in post-tracking script 2024-06-13 14:31:38 +02:00
Ycarus (Yannick Chabanois)
7cb39585d9 Update Shadowsocks-Rust 2024-06-13 09:35:46 +02:00
Ycarus (Yannick Chabanois)
6d43d72453 Fix rust for 5.4 2024-06-12 20:16:20 +02:00
Ycarus (Yannick Chabanois)
d440406c83 Default aes-256-gcm for OpenVPN 2024-06-12 20:15:54 +02:00
Ycarus (Yannick Chabanois)
27381b06ff Don't update IP via openmptcprouter-vps when not needed 2024-06-12 20:15:18 +02:00
Ycarus (Yannick Chabanois)
5b25a1573b Use wpad-mesh-openssl and fix typo 2024-06-12 20:14:45 +02:00
Ycarus (Yannick Chabanois)
424fa0bbf6 Use ipv4 by default in omr-tracker if family is not set 2024-06-12 20:14:05 +02:00
Ycarus (Yannick Chabanois)
3d99aab94a Force 2022-blake3-aes-256-gcm for XRay using Shadowsocks protocol 2024-06-12 20:13:27 +02:00
Ycarus (Yannick Chabanois)
ec805f7cda Add mptcp-bpf-bkup 2024-06-11 20:06:20 +02:00
Ycarus (Yannick Chabanois)
0dd39de544 Update Shadowsocks-Rust 2024-06-11 19:31:49 +02:00
Ycarus (Yannick Chabanois)
04fd427eb3 Update ModemManager 2024-06-11 19:27:30 +02:00
Ycarus (Yannick Chabanois)
1835cb577c Fix Rust compilation 2024-06-10 12:55:30 +02:00
Ycarus (Yannick Chabanois)
5e4eafb0c8 Update Rust patches 2024-06-10 07:58:28 +02:00
Ycarus (Yannick Chabanois)
7a88fd36e2 Update Rust 2024-06-09 19:10:37 +02:00
Ycarus (Yannick Chabanois)
6e158986e4 Add a check to detect when dnsmasq not working in omr-schedule 2024-06-07 09:04:46 +02:00
Ycarus (Yannick Chabanois)
bc4c45821d Change width in openmptcprouter theme 2024-06-07 09:03:55 +02:00
Ycarus (Yannick Chabanois)
6ef99c7218 Small change to optimize in post-tracking routes test 2024-06-06 15:13:46 +02:00
Ycarus (Yannick Chabanois)
3a3bf7b3ba Fix omr-tracker-server OpenVPN config 2024-06-06 15:13:04 +02:00
Ycarus (Yannick Chabanois)
be6432a690 syslog is now an option in build.sh script 2024-06-06 11:56:03 +02:00
Ycarus (Yannick Chabanois)
f23a699e86 Add remote syslog o syslogd package 2024-06-06 11:55:42 +02:00
Ycarus (Yannick Chabanois)
4607872270 Start z8102 earlier 2024-06-06 10:45:15 +02:00
Ycarus (Yannick Chabanois)
cf2541a830 Start ModemManager earlier 2024-06-06 10:44:18 +02:00
Ycarus (Yannick Chabanois)
fab4d2b11a Ifup interface when modemmanager report registered state via post-tracking script 2024-06-04 09:37:58 +02:00
Ycarus (Yannick Chabanois)
e48a69957d Set OpenVPN IP when one IP of VPS answer 2024-06-04 09:37:16 +02:00
Ycarus (Yannick Chabanois)
50bbc50263 Set unbound to only listen on loopback 2024-05-29 19:56:14 +02:00
Ycarus (Yannick Chabanois)
6f17814f05 Disable ttyd by default 2024-05-29 19:55:50 +02:00
Ycarus (Yannick Chabanois)
23c980e72f Only restart OpenVPN OMR vpn via omr-tracker-server 2024-05-29 19:55:24 +02:00
Ycarus (Yannick Chabanois)
6f549b2615 Fix puk setting in modemmanager interface 2024-05-29 19:54:56 +02:00
Ycarus (Yannick Chabanois)
6511494f1c Add luci-proto-modemmanager to add puk code and display device in Network->Interfaces 2024-05-28 19:41:33 +02:00
Ycarus (Yannick Chabanois)
307d22341f Increase box size 2024-05-28 19:39:53 +02:00
Ycarus (Yannick Chabanois)
6422280b06 Fix to use a list for OpenVPN remote in OpenMTPCProuter VPS script 2024-05-28 13:15:10 +02:00
Ycarus (Yannick Chabanois)
2b8983147d Allow multiple IPs for OpenVPN OMR remote in tracker server 2024-05-28 13:14:45 +02:00
Ycarus (Yannick Chabanois)
a7594a16de Add libopenssl-legacy 2024-05-28 13:14:05 +02:00
Ycarus (Yannick Chabanois)
23d46fc5bf Remove luci-app-capture-packets, interface is not working for now 2024-05-27 20:38:52 +02:00
Ycarus (Yannick Chabanois)
5a51b46861 Fix IPv6 route issue and remove a duplicate 2024-05-27 20:38:23 +02:00
Ycarus (Yannick Chabanois)
b7bf68b675 Add wpad-openssl for WPA3 support 2024-05-24 17:35:16 +02:00
Ycarus (Yannick Chabanois)
7c03abe4a8 Add puk code support in script 2024-05-24 17:34:54 +02:00
Ycarus (Yannick Chabanois)
45e19aa70a Add an option to disable 6in4 2024-05-24 14:12:27 +02:00
Ycarus (Yannick Chabanois)
d2d615dc3c Lower values for omr-tracker on OMRVPN 2024-05-23 15:43:36 +02:00
Ycarus (Yannick Chabanois)
4e3eead6a7 Add compatibility mode for iperf3 2024-05-23 15:43:01 +02:00
Ycarus (Yannick Chabanois)
32725c5a10 Add Shadowsocks-Rust in omr6in4 2024-05-23 15:42:25 +02:00
Ycarus (Yannick Chabanois)
c1d3318f5e Add filter_aaa dnsmasq setting info in local API 2024-05-23 15:42:06 +02:00
Ycarus (Yannick Chabanois)
7f695c77ba Restart ModemManager if it doesn't answer 2024-05-23 10:07:14 +02:00
Ycarus (Yannick Chabanois)
9d89ac896f Update XRay 2024-05-23 10:03:47 +02:00
Ycarus (Yannick Chabanois)
271eead6f7 Update net-tools 2024-05-23 10:02:45 +02:00
Ycarus (Yannick Chabanois)
61ef839903 Update bcm27xx eeprom 2024-05-23 10:02:16 +02:00
Ycarus (Yannick Chabanois)
db9d2f091c Update iperf3 2024-05-23 10:01:09 +02:00
Ycarus (Yannick Chabanois)
8dc45bd3b7 Update iproute2 2024-05-23 09:53:46 +02:00
Ycarus (Yannick Chabanois)
d1595a71f4 Add back r8169 2024-05-17 21:01:14 +02:00
Ycarus (Yannick Chabanois)
0fc010d6cb Add max_pin_retry option and add mbim-utils 2024-05-17 14:24:07 +02:00
Ycarus (Yannick Chabanois)
277397f4d7 Fix set route on post tracking, not for VPN 2024-05-16 09:55:01 +02:00
Ycarus (Yannick Chabanois)
b352e5d68c Update ModemManager 2024-05-15 19:11:33 +02:00
Ycarus (Yannick Chabanois)
a2f5e1e5c2 Reset pin retry counter if connected even if not working in OMR-Tracker post tracking 2024-05-15 17:17:12 +02:00
Ycarus (Yannick Chabanois)
5c5d2314b8 Update XRay 2024-05-15 16:54:20 +02:00
Ycarus (Yannick Chabanois)
20dc1d7005 Update Shadowsocks-Rust 2024-05-15 16:54:10 +02:00
Ycarus (Yannick Chabanois)
322f29543f Fix when some routes are not correctly set in OMr-Tracker Post tracking script 2024-05-15 16:44:07 +02:00
Ycarus (Yannick Chabanois)
996216d69d Add PCRE to PCRE2 patch to Shadowsocks-libev 2024-05-15 14:08:10 +02:00
Ycarus (Yannick Chabanois)
2d5cef4623 Fix server usage when IPv4 and IPv6 set 2024-05-13 20:23:32 +02:00
Ycarus (Yannick Chabanois)
5eb157e2a0 Fix and force PIN for modemmanager in omr-tracker post-tracking script 2024-05-13 18:18:53 +02:00
Ycarus (Yannick Chabanois)
868706760e Update libqmi 2024-05-13 18:18:16 +02:00
Ycarus (Yannick Chabanois)
367ea040f2 Fix interface in OMR-Quota 2024-05-13 11:41:13 +02:00
Ycarus (Yannick Chabanois)
140649c2eb Update ModemManager 2024-05-13 11:39:07 +02:00
Ycarus (Yannick Chabanois)
76dc02224d Fix post tracking check 2024-05-09 08:45:01 +02:00
Ycarus (Yannick Chabanois)
53261a11d2 Display type in log for omr-tracker-ss 2024-05-08 08:06:08 +02:00
Ycarus (Yannick Chabanois)
9c2f6605b6 Less modemmanager restart and more log in omr-tracker post tracking script 2024-05-08 08:05:24 +02:00
Ycarus (Yannick Chabanois)
1d2a10b0ba Add Shadowsocks rust or libev info in omr-tracker shadowsocks proxy 2024-05-07 11:24:04 +02:00
Ycarus (Yannick Chabanois)
55430ee3ae Small change in omr-tracker server log 2024-05-07 11:23:03 +02:00
Ycarus (Yannick Chabanois)
370d78a82a Exit if Shadowsocks-Rust ss-redir are not enabled 2024-05-07 11:19:32 +02:00
Ycarus (Yannick Chabanois)
95a2a5fb91 Update ModemManager 2024-05-06 23:21:17 +02:00
Ycarus (Yannick Chabanois)
217babea97 Check modem status before interface up/down or restart modem 2024-05-06 18:25:57 +02:00
Ycarus (Yannick Chabanois)
7759d8834c Fix Shadowsocks-rust default config 2024-05-06 18:25:24 +02:00
Ycarus (Yannick Chabanois)
257d61f7f4 Fix when server have IPv4 and IPv6 to use both with Shadowsocks 2024-05-06 18:20:50 +02:00
Ycarus (Yannick Chabanois)
fe63f73006 Fix OMR-Tracker server 2024-05-06 12:54:54 +02:00
Ycarus (Yannick Chabanois)
4e0b53431d Change MPTCP status only if interface have IP 2024-05-03 18:15:20 +02:00
Ycarus (Yannick Chabanois)
08e9d8b4ff Check if omr-bypass is installed on schedule before trying to set settings 2024-05-03 15:43:20 +02:00
Ycarus (Yannick Chabanois)
65a10f0910 Fix when resolveip doesn't work in API 2024-05-03 13:26:21 +02:00
Ycarus (Yannick Chabanois)
85c74d6aaa Add a log message when omr-tracker is not able to detect IP 2024-05-03 13:25:51 +02:00
Ycarus (Yannick Chabanois)
e2b5727d31 Restart omr-tracker after routes issues 2024-05-03 13:25:12 +02:00
Ycarus (Yannick Chabanois)
340f1bd708 Add IPv6 hosts for proxy check 2024-05-03 12:12:31 +02:00
Ycarus (Yannick Chabanois)
a4a0cad8ad Fix add interface in luci-omr-tracker 2024-05-03 11:58:07 +02:00
Ycarus (Yannick Chabanois)
c149ea35dc Test resolution via unbound and restart if not working 2024-05-03 11:20:57 +02:00
Ycarus (Yannick Chabanois)
bea6b1ab53 Restart interface for modemmanager if state false. MM doesn't seems to always give good status via ifstatus 2024-05-03 11:20:32 +02:00
Ycarus (Yannick Chabanois)
cba730ca19 Update libmbim 2024-05-03 09:39:55 +02:00
Ycarus (Yannick Chabanois)
921f201253 Update libqmi 2024-05-03 09:39:44 +02:00
Ycarus (Yannick Chabanois)
d706eb16bf Always enable debug mode in ModemManager 2024-05-03 09:39:29 +02:00
Ycarus (Yannick Chabanois)
61f0ebedb3 Upgrade ModemManager 2024-05-03 09:39:09 +02:00
Ycarus (Yannick Chabanois)
93550bb17e Fix and retrieve some data only when needed 2024-05-02 20:50:37 +02:00
Ycarus (Yannick Chabanois)
17c8f0b7c8 multipath command doesn't check if all is ok when only requesting interface mode 2024-05-02 20:50:05 +02:00
Ycarus (Yannick Chabanois)
058c3474cc No special interface restart with modemmanager in OMR-Tracker 2024-05-02 19:08:09 +02:00
Ycarus (Yannick Chabanois)
fa035a752a No MPTCP settings if interface down 2024-05-02 19:07:24 +02:00
Ycarus (Yannick Chabanois)
f7a591f3dc Simplify z8102 watchdog command 2024-05-02 09:46:53 +02:00
Ycarus (Yannick Chabanois)
20f0ff5eb3 Remove IPv6 log when IPv6 is disabled in omr-tracker 2024-05-01 19:34:23 +02:00
Ycarus (Yannick Chabanois)
ff93ca8530 Add MPTCP BPF Scheduler in interface and config to use them 2024-04-29 19:35:11 +02:00
Ycarus (Yannick Chabanois)
31b29bf4cf Fix https://github.com/Ysurac/openmptcprouter/issues/3324 2024-04-29 16:38:11 +02:00
Ycarus (Yannick Chabanois)
39ae10e6af Remove some realtek modules 2024-04-26 19:20:09 +02:00
Ycarus (Yannick Chabanois)
ef12c67ebe Display less log in omr-tracker-ss 2024-04-26 19:19:52 +02:00
Ycarus (Yannick Chabanois)
af573324d9 Fix when server have 2 or mores IPs 2024-04-26 19:19:28 +02:00
Ycarus (Yannick Chabanois)
7348518bb0 Add BPF MPTCP scheduler for kernel 6.6 2024-04-26 11:51:54 +02:00
Ycarus (Yannick Chabanois)
9d98b8bd78 Better check in omr-tracker 2024-04-26 11:15:03 +02:00
Ycarus (Yannick Chabanois)
e7faf2963d Listen only on lan for shadowsocks-* 2024-04-26 11:14:25 +02:00
Ycarus (Yannick Chabanois)
8b6e153249 Fix no data in status page 2024-04-26 11:12:13 +02:00
Ycarus (Yannick Chabanois)
82c0efc445 Get serverip from shadowsocks-rust also 2024-04-26 11:11:29 +02:00
Ycarus (Yannick Chabanois)
8c1505cd9f Fix z8102 with gpiolib 2 2024-04-25 17:57:00 +02:00
Ycarus (Yannick Chabanois)
9d0985b6e2 Fix z8102 watchdog 2024-04-25 13:54:28 +02:00
Ycarus (Yannick Chabanois)
0c71b0e345 Remove more realtek drivers 2024-04-25 10:45:53 +02:00
Ycarus (Yannick Chabanois)
10b7b073a2 Add libgpiod 2.1.1 2024-04-25 10:35:12 +02:00
Ycarus (Yannick Chabanois)
e0ae3ca436 Remove realtek and iwlwifi as default packages 2024-04-24 14:23:28 +02:00
Ycarus (Yannick Chabanois)
896fd2a8a7 Disable mt7601u on x86_64, seems to crash N100 platforms 2024-04-23 20:55:42 +02:00
Ycarus (Yannick Chabanois)
34e7dc767a Fix VPN status display in some case 2024-04-23 17:08:04 +02:00
Ycarus (Yannick Chabanois)
8de32360e6 Fix omr-tracker-server when there is an IPv4 and an IPv6 set 2024-04-23 17:07:40 +02:00
Ycarus (Yannick Chabanois)
cbfaa90bf0 Disable packet steering by default 2024-04-23 17:06:31 +02:00
Ycarus (Yannick Chabanois)
5084dd2967 Disable ath9k on x86_64 2024-04-23 09:32:22 +02:00
Ycarus (Yannick Chabanois)
8bccbcc192 Add XRay VLESS-Relauity fingerprint, servername and spiderX settings 2024-04-21 19:15:50 +02:00
Ycarus (Yannick Chabanois)
296c5c6764 Fix MPTCP over VPN Wireguard 2024-04-19 18:19:07 +02:00
Ycarus (Yannick Chabanois)
439dd45bd4 Fix check on v2ray/xray status for firewall 2024-04-19 11:06:11 +02:00
Ycarus (Yannick Chabanois)
27b643c402 Fix text to say that XRay can also forward ports in firewall UI 2024-04-19 11:05:46 +02:00
Ycarus (Yannick Chabanois)
3c76873d31 Fix open port on server firewall when v2ray/xray enabled 2024-04-19 10:53:18 +02:00
Ycarus (Yannick Chabanois)
becf24f00d Fix bypass from an IP address 2024-04-19 10:11:59 +02:00
Ycarus (Yannick Chabanois)
72f5277b2e Timeout can be set to any value in omr-tracker UI 2024-04-18 16:05:17 +02:00
Ycarus (Yannick Chabanois)
697a28890e Disable SQM on OMRVPN by default and fix an autorate default value 2024-04-18 13:08:30 +02:00
Ycarus (Yannick Chabanois)
17304993a9 Disable SQM on OMRVPN 2024-04-18 13:07:55 +02:00
Ycarus (Yannick Chabanois)
07b9fa1ac4 Add missing config for Design theme 2024-04-18 13:06:46 +02:00
Ycarus (Yannick Chabanois)
1f043dcfd0 Restart omr-bypass on wizard changes 2024-04-15 09:24:03 +02:00
Ycarus (Yannick Chabanois)
70cb08a28a Check error code of modem before restarting it 2024-04-12 18:21:19 +02:00
Ycarus (Yannick Chabanois)
4f3ea11b5d Add image for z8102ax BL31 2024-04-12 15:44:48 +02:00
Ycarus (Yannick Chabanois)
c8488f819e Allow to restart modem1 or modem2 on z8102 2024-04-12 15:16:26 +02:00
Ycarus (Yannick Chabanois)
3348e6d049 Fix modem configuration patch on z8102ax 2024-04-12 15:15:51 +02:00
Ycarus (Yannick Chabanois)
55cf813698 Fix check when modemamanger is used in tracking 2024-04-12 15:15:30 +02:00
Ycarus (Yannick Chabanois)
60619fa41d New CircleCI config to test... 2024-04-12 11:57:39 +02:00
Ycarus (Yannick Chabanois)
ac709b1089 Revert z8102 init position 2024-04-12 11:57:26 +02:00
Ycarus (Yannick Chabanois)
d582c9a9d7 Send kernel information on sysupgrade 2024-04-11 18:14:29 +02:00
Ycarus (Yannick Chabanois)
c02c9f20d0 Add luci-theme-alpha & luci-theme-design by default 2024-04-11 11:11:14 +02:00
Ycarus (Yannick Chabanois)
94f19376e9 Add luci-theme-design 2024-04-11 11:10:17 +02:00
Ycarus (Yannick Chabanois)
9fcf5fd5b6 Add luci-theme-alpha 2024-04-11 11:10:03 +02:00
Ycarus (Yannick Chabanois)
9348ce096b Update tsping 2024-04-11 11:09:42 +02:00
Ycarus (Yannick Chabanois)
6b592fe94d Update r8125 2024-04-11 11:09:29 +02:00
Ycarus (Yannick Chabanois)
3d76e089fe Add compilation on kernel 6.6 2024-04-10 18:06:05 +02:00
Ycarus (Yannick Chabanois)
b754f893e3 Update XRay 2024-04-10 18:05:47 +02:00
Ycarus (Yannick Chabanois)
8db8182adc Update Shadowsocks-Rust 2024-04-10 18:05:31 +02:00
Ycarus (Yannick Chabanois)
013326d3ee Update OpenVPN DCO 2024-04-10 18:05:11 +02:00
Ycarus (Yannick Chabanois)
94c0896c4a Update bcm27xx-eeprom 2024-04-10 17:40:35 +02:00
Ycarus (Yannick Chabanois)
c4bcee8a39 Run z8102 init a bit later 2024-04-09 16:38:04 +02:00
Ycarus (Yannick Chabanois)
573d3a171b Upgrade OpenVPN to 2.6.10 2024-04-09 13:20:33 +02:00
Ycarus (Yannick Chabanois)
57b8239787 Should fix https://github.com/Ysurac/openmptcprouter/issues/3252#issuecomment-2041038428 2024-04-06 17:12:32 +02:00
Ycarus (Yannick Chabanois)
8b40968f6a Fix https://github.com/Ysurac/openmptcprouter/issues/3251 - Bypass MAC address 2024-04-05 16:45:33 +02:00
Ycarus (Yannick Chabanois)
205b3f6d20 Fix KERNEL instead of LINUX in openmptcprouter-full 2024-04-04 19:17:56 +02:00
Ycarus (Yannick Chabanois)
dfd37d3188 Should fix https://github.com/Ysurac/openmptcprouter/issues/3244 2024-04-04 11:09:25 +02:00
Ycarus (Yannick Chabanois)
71be972513 Revert ndpi-netfilter2 changes for 6.1 kernel 2024-04-04 08:45:19 +02:00
Ycarus (Yannick Chabanois)
124b48253c Export Status for OMR-Tracker scripts 2024-04-03 14:06:33 +02:00
Ycarus (Yannick Chabanois)
bb3a102671 Add previous gw info in log 2024-04-03 10:17:14 +02:00
Ycarus (Yannick Chabanois)
7c6429e611 Fix omr-test-speed on 6.1/6.6 kernel with nft 2024-04-03 10:16:52 +02:00
Ycarus (Yannick Chabanois)
00d3bc3119 Disable ndpi for more arch... 2024-04-03 09:37:27 +02:00
Ycarus (Yannick Chabanois)
d0d6d78871 Should fix https://github.com/Ysurac/openmptcprouter/issues/3243 2024-04-03 09:37:04 +02:00
Ycarus (Yannick Chabanois)
dc4248fa2e Fix https://github.com/Ysurac/openmptcprouter/issues/3245 2024-04-03 09:36:38 +02:00
Ycarus (Yannick Chabanois)
1b182489c2 Disable ndpi for kernel 6.6 2024-04-02 20:34:37 +02:00
Ycarus (Yannick Chabanois)
4e01f6563e Disable ndpi for kernel 6.6 2024-04-02 20:33:31 +02:00
Ycarus (Yannick Chabanois)
178481a749 Check if proxy config exist or not before actions on openmptcprouter-vps 2024-04-02 16:31:50 +02:00
Ycarus (Yannick Chabanois)
2b042ee352 Start openmptcprouter-vps is never correctly run on VPS 2024-04-02 16:31:03 +02:00
Ycarus (Yannick Chabanois)
b64a585a0a Update ndpi-netfilter 2024-03-29 20:20:21 +01:00
Ycarus (Yannick Chabanois)
ec31556e17 Update ModemManager 2024-03-29 20:19:38 +01:00
Ycarus (Yannick Chabanois)
1fa7e61785 Increase mod dashboard order 2024-03-29 09:51:44 +01:00
Ycarus (Yannick Chabanois)
71336e9527 Add possibility to run script to all OMR-Tracker 2024-03-28 18:38:19 +01:00
Ycarus (Yannick Chabanois)
ac1632cc85 Start z8102 earlier 2024-03-28 18:37:25 +01:00
Ycarus (Yannick Chabanois)
5c48937caf Add log on z8102 script start 2024-03-28 18:36:37 +01:00
Ycarus (Yannick Chabanois)
b6bc58db14 Fix MPTCP mode changes 2024-03-28 18:35:39 +01:00
Ycarus (Yannick Chabanois)
9f4251b59b Should speedup USB 2024-03-27 19:50:24 +01:00
Ycarus (Yannick Chabanois)
40bcdb46a8 Change max-width of status page 2024-03-27 19:28:10 +01:00
Ycarus (Yannick Chabanois)
5f14176388 Change proxy firewall priority 2024-03-25 14:38:50 +01:00
bdaylik
4be2308e8b
update vnstat_backup service to start before and end after the vnstat service (#310)
Currently vnstat_backup service runs after vnstat runs and overwrites newly initialized database of vnstat causing it to crash and restart.

Moving vnstat_backup service before vnstat lets it create the database before vnstat runs. This allows an error free operation.
2024-03-25 12:16:08 +01:00
bdaylik
bb483535fa
update omr-quota to up the interface when its usage is below threshold (#309)
Existing condition for the upping the interface asks for all 3 checks to have positive values (RX, TX and TT). However this is not necessary as some can be set to 0 to disable the check.

This modification makes sure that if the above checks for RX, TX and TT values have failed, thus the usage is still below the set quota, the interface is set to be up.

Thanks to this modification its possible to set only one check positive (e.g. TT) and let the script automatically down and up the interface as expected.
2024-03-25 12:14:55 +01:00
bdaylik
605be52f28
update vnstat_backup service to use default DatabaseDir if not specified (#307) 2024-03-25 11:12:38 +01:00
bdaylik
f44a31a46a
update omr-quota to compare in kbits as mentioned in GUI (#308)
vnstat by default reports the values in bits, however the OMR UI configuration asks values to be given in kbits. This commit fixes the omr-quota script by converting vnstat output to kbits.
2024-03-25 11:11:43 +01:00
Ycarus (Yannick Chabanois)
a3f974749e Should fix https://github.com/Ysurac/openmptcprouter/issues/3218 2024-03-22 14:57:34 +01:00
Ycarus (Yannick Chabanois)
1de5ac37b8 Remove modemamanger patch 2024-03-22 14:57:33 +01:00
Ycarus (Yannick Chabanois)
ced4692b61 Fix inital QNAP 301w network config 2024-03-22 14:57:33 +01:00
Ycarus (Yannick Chabanois)
d05eb63a52 Delete old network rules in omr-bypass 2024-03-22 14:57:33 +01:00
Ycarus (Yannick Chabanois)
53183d60f7 Update ModemManager 2024-03-22 14:57:33 +01:00
bdaylik
a5ac3e4a01
omr-quota does not work as expected due to a typo in checking json field "months" (#306)
* Fix typo on omr-quota

vnstat json does not contain a field named "months". The name of the field id "month". This causes this script to not manage quotas.

* agree to contribution terms
2024-03-22 14:55:17 +01:00
Ycarus (Yannick Chabanois)
a2af208487 Add DSCP IPv6 rules only if IPv6 is enabled 2024-03-20 14:03:22 +01:00
Ycarus (Yannick Chabanois)
37ac209817 Fix omr-bypass interfaces fw rules related to proxy 2024-03-20 14:02:44 +01:00
Ycarus (Yannick Chabanois)
fcb98ece42 Fix typo in omr-bypass 2024-03-19 14:47:47 +01:00
Ycarus (Yannick Chabanois)
a67815595f Refresh VPS config shouldn't be need on Master/Backup server switch 2024-03-18 19:45:17 +01:00
Ycarus (Yannick Chabanois)
ae8236032a Faster OMR-Tracker OMRVPN problems detection 2024-03-18 19:44:58 +01:00
Ycarus (Yannick Chabanois)
2bc7f78810 Remove log when check on non existing interface 2024-03-18 19:44:58 +01:00
Ycarus (Yannick Chabanois)
75c9e1e317 Faster OMR-Tracker OMRVPN problems detection 2024-03-18 19:44:58 +01:00
Ycarus (Yannick Chabanois)
afca835bdc Force reload OpenVPN OMR when errors 2024-03-18 19:44:58 +01:00
Henning
e801d225ac
fix typo in cake autorate delay threshold (#304) 2024-03-17 19:32:39 +01:00
Ycarus (Yannick Chabanois)
2d3eac400f Fix metrics on imported backup 2024-03-13 20:38:23 +01:00
Ycarus (Yannick Chabanois)
b83c9b985f Fix VPN routes in some case 2024-03-13 20:37:54 +01:00
Ycarus (Yannick Chabanois)
7437375a2c Fix float to int 2024-03-13 20:37:07 +01:00
Ycarus (Yannick Chabanois)
ca31571685 Update Shadowsocks-rust 2024-03-13 09:45:55 +01:00
Ycarus (Yannick Chabanois)
572a2ead4a Add all servers IP to bypass list in Shadowsocks-* 2024-03-13 09:45:25 +01:00
Ycarus (Yannick Chabanois)
d6996f829b Fix typo in omr-bypass 2024-03-13 09:44:46 +01:00
Ycarus (Yannick Chabanois)
8c9688f82f Update OpenVPN to 2.6.9 2024-03-13 09:44:10 +01:00
Ycarus (Yannick Chabanois)
ec22b7e248 Change sysctl settings 2024-03-12 20:09:57 +01:00
Ycarus (Yannick Chabanois)
0de6d0aaa2 Restart of openmptcprouter-vps shouldn't be need with VPS synchro on master/backup failover 2024-03-12 20:09:24 +01:00
Ycarus (Yannick Chabanois)
94f1ff1efe Add netxen-nic firmware dependency 2024-03-11 10:22:48 +01:00
Ycarus (Yannick Chabanois)
f6a11aad2a Fix Backup server sync keys 2024-03-11 10:22:21 +01:00
Ycarus (Yannick Chabanois)
48328cdeb9 OMR-ByPass IPP sets family. Fix https://github.com/Ysurac/openmptcprouter/issues/3201#issuecomment-1987347769 2024-03-11 08:30:32 +01:00
Ycarus (Yannick Chabanois)
30ce34c19a Should solve server master to backup failover 2024-03-08 20:43:19 +01:00
Ycarus (Yannick Chabanois)
78607d25e4 Fix metric attribution 2024-03-08 11:54:27 +01:00
Ycarus (Yannick Chabanois)
c4c2eeb3d3 Fix inconsistency reported in https://github.com/Ysurac/openmptcprouter/issues/3192#issuecomment-1981675868 2024-03-06 21:11:04 +01:00
Ycarus (Yannick Chabanois)
201d976ecb Some fixes for OMR-ByPass 2024-03-05 20:16:27 +01:00
Ycarus (Yannick Chabanois)
8f32c218aa Force lower metric for multipath 2024-03-05 20:15:57 +01:00
Ycarus (Yannick Chabanois)
f4ba68e319 Force correction of MTU previous issue 2024-03-05 08:16:31 +01:00
Ycarus (Yannick Chabanois)
23ce6c02e7 Fix issue https://github.com/Ysurac/openmptcprouter/issues/3192 2024-03-04 17:44:46 +01:00
Ycarus (Yannick Chabanois)
07b7ae39da Fix Core Temp on some arch 2024-03-04 17:44:17 +01:00
Ycarus (Yannick Chabanois)
9c55b0be85 Increase timeout for VPS status 2024-02-28 20:17:59 +01:00
Ycarus (Yannick Chabanois)
45b7fee19b Change to limit token errors logs from openmptcprouter-vps 2024-02-28 15:49:21 +01:00
Ycarus (Yannick Chabanois)
00a724f34a Set tracker config by default for Shadowsocks-* 2024-02-28 15:03:46 +01:00
Ycarus (Yannick Chabanois)
c2e937e818 Add xray and shadowsocks-rust support to blocklan script for 5.4 kernel 2024-02-28 14:52:55 +01:00
Ycarus (Yannick Chabanois)
dc729420c7 Fix status page CSS 2024-02-28 14:51:26 +01:00
Ycarus (Yannick Chabanois)
0f1694301c Set dnsmasq config after nft set are created 2024-02-26 11:10:23 +01:00
Ycarus (Yannick Chabanois)
8488834cd9 No commit of firewall changes before all changes are done in omr-bypass 2024-02-24 20:47:33 +01:00
Ycarus (Yannick Chabanois)
22ca7a0131 No data error for OMR6in4 2024-02-23 19:45:10 +01:00
Ycarus (Yannick Chabanois)
7e64ecd41d Fix issue when server disabled for Shadowsocks* and fix IPv6 support in OMR-Tracker 2024-02-22 18:35:26 +01:00
Ycarus (Yannick Chabanois)
df025467e0 Use all defined IPs for VPS check and fix IPv6 support 2024-02-22 18:34:35 +01:00
Ycarus (Yannick Chabanois)
621c9aa7f1 Fix omr-6in4 2024-02-22 18:33:47 +01:00
Ycarus (Yannick Chabanois)
e7126a5f6d Fix tracking for IPv6 and restart only OMR VPN with OpenVPN 2024-02-22 18:33:27 +01:00
Ycarus (Yannick Chabanois)
048f373a2f Increase max width for status 2024-02-22 15:53:04 +01:00
Ycarus (Yannick Chabanois)
6fa355afdb Fix a bug when shadowsocks-libev or shadowsocks-rust are launched with ss-rules enabled but no server enabled 2024-02-19 20:09:43 +01:00
Ycarus (Yannick Chabanois)
dad8e2cfe7 Update luci-theme-argon 2024-02-19 14:17:15 +01:00
Ycarus (Yannick Chabanois)
663ff604d4 Fix Status server IP in some cases 2024-02-19 12:11:07 +01:00
Ycarus (Yannick Chabanois)
72c8e134fd Maybe fix https://github.com/Ysurac/openmptcprouter/issues/3173 2024-02-18 20:45:00 +01:00
Ycarus (Yannick Chabanois)
8dbeb84f9a Enabled ipset by default in omr-bypass 2024-02-18 20:10:27 +01:00
Ycarus (Yannick Chabanois)
66146c3b2b Should fix https://github.com/Ysurac/openmptcprouter/issues/3171 2024-02-18 20:03:15 +01:00
Ycarus (Yannick Chabanois)
3ff67a3563 Fix z8102ax GPIO set on all cases 2024-02-14 09:27:29 +01:00
Ycarus (Yannick Chabanois)
6cf9c5ca60 Disable mno-outline-atomics for arm64 2024-02-13 15:15:38 +01:00
Ycarus (Yannick Chabanois)
feb43aa217 Fix openmptcprouter-vps fix, and no need to get config for proxy/vpn not installed 2024-02-13 15:00:26 +01:00
Ycarus (Yannick Chabanois)
ee768cc154 Fix compilation for z8102ax 2024-02-12 15:55:34 +01:00
Ycarus (Yannick Chabanois)
7935b10b24 Really fix Rust for kernel 5.4 2024-02-12 15:31:36 +01:00
Ycarus (Yannick Chabanois)
b8178a879e Fix Github upload artifact config 2024-02-12 08:20:01 +01:00
Ycarus (Yannick Chabanois)
9b6e4efe7f Add image compilation of z8102ax and fix github action 2024-02-11 19:24:52 +01:00
Ycarus (Yannick Chabanois)
1a3fa01cd0 Disable Shadowsocks-Rust on 5.4 for now... 2024-02-11 19:24:14 +01:00
Ycarus (Yannick Chabanois)
251ef8178d Revert to previous Shadowsocks-rust release only for kernel 5.4 2024-02-11 07:34:35 +01:00
Ycarus (Yannick Chabanois)
9bdc22ba4a Revert Rust change for now, need some tweak for 5.4 support... 2024-02-10 22:15:22 +01:00
Ycarus (Yannick Chabanois)
28fd18c5f7 Fix Golang update by adding 1.20.6 as boostrap 2024-02-10 14:09:04 +01:00
Ycarus (Yannick Chabanois)
55186758bc Add missing files for Rust 2024-02-10 12:57:49 +01:00
Ycarus (Yannick Chabanois)
08993bc8c3 Update Rust 2024-02-10 12:11:02 +01:00
Ycarus (Yannick Chabanois)
0e5d941c9b Update shadowsocks-rust 2024-02-08 19:50:07 +01:00
Ycarus (Yannick Chabanois)
49002dd61d Fix on shadowsocks-rust init for kernel 5.4 2024-02-08 19:49:40 +01:00
Ycarus (Yannick Chabanois)
7199f9da25 Update Golang to 1.22 2024-02-08 19:49:04 +01:00
Ycarus (Yannick Chabanois)
41ec70a232 Fix typo in omr-schedule services 2024-02-07 11:22:52 +01:00
Ycarus (Yannick Chabanois)
f4cacab141 Remove z8102ax config from uci defaults system 2024-02-07 11:22:11 +01:00
Ycarus (Yannick Chabanois)
91684da83b Back to /sys/... changes for z8102 2024-02-07 11:20:42 +01:00
Ycarus (Yannick Chabanois)
6ecbf3930b Move XRay package in Network category 2024-02-02 15:26:57 +01:00
Ycarus (Yannick Chabanois)
99f2265b8d Possible to add server in wizard even if server config is empty 2024-02-01 13:59:32 +01:00
Ycarus (Yannick Chabanois)
a308a62814 Use gpiod-tools for z8102ax 2024-02-01 13:58:37 +01:00
Ycarus (Yannick Chabanois)
d930f7fefa Use openmptcprouter setting instead of shadowsocks for encryption 2024-01-29 17:13:12 +01:00
Ycarus (Yannick Chabanois)
11dc97bcec Add luci-app-ddns and jq 2024-01-29 17:12:01 +01:00
Ycarus (Yannick Chabanois)
2c02eb0c61 Use always rtt line for latency* 2024-01-29 17:11:31 +01:00
Ycarus (Yannick Chabanois)
730a904b85 Set LAN with higher metric 2024-01-29 17:10:53 +01:00
Ycarus (Yannick Chabanois)
e88ad9674f Fix omt-test-speedv6 2024-01-28 17:18:00 +01:00
Ycarus (Yannick Chabanois)
bbbe2fd450 Fix XRay 2024-01-27 07:55:11 +01:00
Ycarus (Yannick Chabanois)
6b57083bcc Fix typo in omr-tracker init 2024-01-25 09:25:35 +01:00
Ycarus (Yannick Chabanois)
24903788d1 Update anonymous config script 2024-01-24 20:12:59 +01:00
Ycarus (Yannick Chabanois)
5b5ed0acfe Update Shadowsocks-Rust default config with another server 2024-01-24 20:12:39 +01:00
Ycarus (Yannick Chabanois)
546c06c785 Check WAN to server test using multiple IPs and fix display bug 2024-01-24 20:11:18 +01:00
Ycarus (Yannick Chabanois)
5a3150844b Multiple local test management for Shadowsocks-Rust 2024-01-24 20:10:29 +01:00
Ycarus (Yannick Chabanois)
52380b373b Fix OMR-Bypass issue with IPv6 2024-01-24 20:08:41 +01:00
Ycarus (Yannick Chabanois)
f6584db4dc Multiple Shadowsocks-Rust server IP management in wizard 2024-01-24 20:08:20 +01:00
Ycarus (Yannick Chabanois)
398e81f0fe Fix multipath command 2024-01-24 15:53:36 +01:00
Ycarus (Yannick Chabanois)
7c40ecf717 Add multiple redir listener in shadowsocks-rust 2024-01-24 15:32:52 +01:00
Ycarus (Yannick Chabanois)
56de8fc06d Fix when there is multiple redir listener 2024-01-24 15:32:32 +01:00
Ycarus (Yannick Chabanois)
c68a5f0db8 Add more check for IPv4/IPv6 in post tracking 2024-01-24 15:31:56 +01:00
Ycarus (Yannick Chabanois)
4f26897d1a Use -e on multipath binary 2024-01-24 15:30:38 +01:00
Ycarus (Yannick Chabanois)
9237ab003d Fix typo in MPTCP script and better awk usage 2024-01-24 14:01:33 +01:00
Ycarus (Yannick Chabanois)
aad8e632f1 Fix find netmask via mptcp 2024-01-24 11:27:34 +01:00
Ycarus (Yannick Chabanois)
c5bacfc244 Fix Shadowsocks-libev nftables 2024-01-24 11:26:57 +01:00
Ycarus (Yannick Chabanois)
612607ec1e Resolve server IP in API 2024-01-24 09:55:39 +01:00
Ycarus (Yannick Chabanois)
67dc34ba25 Add more log on mptcp reload due to metrics 2024-01-24 09:55:06 +01:00
Ycarus (Yannick Chabanois)
ae3c2fe47b Stop/Start multipath after route set 2024-01-23 20:22:11 +01:00
Ycarus (Yannick Chabanois)
e79804444f Fix check table for IPv6 in omr-tracker scripts 2024-01-23 20:21:15 +01:00
Ycarus (Yannick Chabanois)
d0d987cc20 Fix bug on IPv6 gateway display in status page and some commands in API 2024-01-23 20:06:11 +01:00
Ycarus (Yannick Chabanois)
64d3ac4add Simplify code for IPv6 on OMR-Tracker 2024-01-23 20:05:03 +01:00
Ycarus (Yannick Chabanois)
e9108a74e6 Add a log when MPTCP reload due to incorrect routes 2024-01-23 20:04:02 +01:00
Ycarus (Yannick Chabanois)
23556274f0 Add option to restrict or not to LAN fw zone in interface, disabled by default now 2024-01-23 18:00:31 +01:00
Ycarus (Yannick Chabanois)
8bb06c763b Only add IP in global scope in multipath 2024-01-23 16:23:34 +01:00
Ycarus (Yannick Chabanois)
530d89c0c1 Fix retrieve IPv6 in some case for OMR-Tracker 2024-01-23 16:23:08 +01:00
Ycarus (Yannick Chabanois)
fb3cd8be2a Fix on OMR-DSCP when importing previous config 2024-01-23 16:21:48 +01:00
Ycarus (Yannick Chabanois)
086c13516f Fixes for IPv6 in OMR-Tracker 2024-01-23 14:55:59 +01:00
Ycarus (Yannick Chabanois)
8e5a8f8694 Fix MPTCP reload on metric for IPv6 2024-01-23 14:55:38 +01:00
Ycarus (Yannick Chabanois)
ee12f0f05d Fix IPv6 in route configuration 2024-01-22 16:39:33 +01:00
Ycarus (Yannick Chabanois)
ec6fd52cb5 Fix OMR-Tracker when device not available at launch 2024-01-22 16:39:06 +01:00
Ycarus (Yannick Chabanois)
2f3842962e Set download-ci-llvm false for Rust 2024-01-22 08:42:22 +01:00
Ycarus (Yannick Chabanois)
aa3db5a62e Downgrade Rust for kernel 5.4 2024-01-20 11:14:50 +01:00
Ycarus (Yannick Chabanois)
1013739703 Update Shadowsocks-Rust 2024-01-20 11:14:24 +01:00
Ycarus (Yannick Chabanois)
01701d30ae Add a help text in omr-tracker luci 2024-01-19 17:25:08 +01:00
Ycarus (Yannick Chabanois)
bc8a5f8b5f Update Rust 2024-01-19 17:24:40 +01:00
Ycarus (Yannick Chabanois)
ba4e77d064 Fix OMR-Tracker delay 2024-01-19 11:48:32 +01:00
Ycarus (Yannick Chabanois)
bc8582e746 Fix omr-tracker-server 2024-01-19 11:48:08 +01:00
Ycarus (Yannick Chabanois)
2a13fc8e50 Restart interface in more case with ModemManager 2024-01-19 11:47:39 +01:00
Ycarus (Yannick Chabanois)
ff2f5f804f Less log for MPTCP init 2024-01-19 11:47:12 +01:00
Ycarus (Yannick Chabanois)
5bc24b9727 Fix OMR-DSCP nft 2024-01-19 09:10:12 +01:00
Ycarus (Yannick Chabanois)
9153623fd9 Fix OMR-ByPass NFT 2024-01-19 09:09:46 +01:00
Ycarus (Yannick Chabanois)
766ee12b7d Fix get gateway in mptcp script 2024-01-18 17:23:54 +01:00
Ycarus (Yannick Chabanois)
47547dcc81 Fix find gateway in omr-tracker in some case 2024-01-18 17:23:30 +01:00
Ycarus (Yannick Chabanois)
b84118d27d Fix OMR-ByPass check 2024-01-18 14:36:46 +01:00
Ycarus (Yannick Chabanois)
99e7346482 Fix omr-tracker-server script up/down 2024-01-18 14:36:29 +01:00
Ycarus (Yannick Chabanois)
c4ebf454ad Call less often ip command in multipath 2024-01-18 14:35:38 +01:00
Ycarus (Yannick Chabanois)
4da4487376 Fix XRay 2024-01-18 10:20:35 +01:00
Ycarus (Yannick Chabanois)
c184f30c10 Delete old dnsmasq ipset when using dscp nft 2024-01-18 10:03:46 +01:00
Ycarus (Yannick Chabanois)
91316a23a4 Fix OMR-Tracker ping detection 2024-01-18 08:56:10 +01:00
Ycarus (Yannick Chabanois)
83643aa07b Set ping-restart parameter to 60 instead of 120 for OpenVPN 2024-01-17 18:27:20 +01:00
Ycarus (Yannick Chabanois)
9d53bf202f Reload instead of restart of network in openmptcprouter-vps 2024-01-17 18:26:33 +01:00
Ycarus (Yannick Chabanois)
4bdbd1a4c8 Better log when new public ip detected 2024-01-17 18:26:00 +01:00
Ycarus (Yannick Chabanois)
a605265756 Fix restart of omr-bypass in schedule 2024-01-17 18:25:35 +01:00
Ycarus (Yannick Chabanois)
17c84979e2 Set restart and reload as stop/stop on proxy scripts 2024-01-17 18:25:16 +01:00
Ycarus (Yannick Chabanois)
6da3a4768a Set again custom rules for each proxy, else current rules are removed on another proxy stop 2024-01-17 16:44:13 +01:00
Ycarus (Yannick Chabanois)
37b059f39a Remove not used firewall include on all proxy 2024-01-17 16:35:17 +01:00
Ycarus (Yannick Chabanois)
289c26ebad Remove v2ray-rules call 2024-01-17 16:04:55 +01:00
Ycarus (Yannick Chabanois)
cc072920ad Doesn't run rules_up if proxy disabled 2024-01-17 15:58:21 +01:00
Ycarus (Yannick Chabanois)
fef367a275 Don't disable modemmanager 2024-01-17 15:44:04 +01:00
Ycarus (Yannick Chabanois)
8e2e392041 Fix OMR-Schedule 2024-01-17 15:39:29 +01:00
Ycarus (Yannick Chabanois)
bb312b9f3f Fix typo in OMR-Tracker 2024-01-17 15:34:32 +01:00
Ycarus (Yannick Chabanois)
c9885305cf Update iproute2 2024-01-17 15:11:32 +01:00
Ycarus (Yannick Chabanois)
3d500789f7 Disable reliability in interface for now, add partly support in OMR-Tracker 2024-01-17 14:13:46 +01:00
Ycarus (Yannick Chabanois)
cc30b45eed fullconenat only for 5.4 for now 2024-01-17 14:13:11 +01:00
Ycarus (Yannick Chabanois)
0dc7679b8f Fix typo in openmptcprouter-full 2024-01-17 08:15:35 +01:00
Ycarus (Yannick Chabanois)
e9c8954c83 Put default values for all sleep in OMR-Tracker 2024-01-16 18:38:37 +01:00
Ycarus (Yannick Chabanois)
08916a7788 Set a default value for interval tries in omr-tracker 2024-01-16 18:28:44 +01:00
Ycarus (Yannick Chabanois)
f350523653 Fix OMR-Tracker for VPN 2024-01-16 15:57:00 +01:00
Ycarus (Yannick Chabanois)
5d0aac0f0d Remove keepalived of default 2024-01-16 14:42:23 +01:00
Ycarus (Yannick Chabanois)
9cbeb186f9 Execute omr-schedule every minutes 2024-01-16 12:48:14 +01:00
Ycarus (Yannick Chabanois)
abe757bd00 Fix OpenMPTCprouter-vps 2024-01-16 09:30:49 +01:00
Ycarus (Yannick Chabanois)
7ea78ed200 Fix omr-tracker-server 2024-01-16 08:36:13 +01:00
Ycarus (Yannick Chabanois)
1eae173fdb Fix Shadowsocks libev with nft 2024-01-15 16:44:17 +01:00
Ycarus (Yannick Chabanois)
2455e4ab5a Enable MPTCP after routes creation 2024-01-15 16:27:21 +01:00
Ycarus (Yannick Chabanois)
f10191f25b Fix tracker on down interface 2024-01-15 10:27:29 +01:00
Ycarus (Yannick Chabanois)
5074d855f0 Use same nft file for all proxy 2024-01-15 09:17:44 +01:00
Ycarus (Yannick Chabanois)
52a7f7eb36 Flush route cache after route changes 2024-01-13 09:07:35 +01:00
Ycarus (Yannick Chabanois)
4a21f31791 Fix openmptcprouter-vps error for VPN on server 2024-01-13 00:16:56 +01:00
Ycarus (Yannick Chabanois)
4ddf032dcd Fix shadowsocks-rust password info 2024-01-13 00:11:59 +01:00
Ycarus (Yannick Chabanois)
1a9c152ef9 Fix omr-bypass when proxy rules doesn't exist 2024-01-13 00:01:43 +01:00
Ycarus (Yannick Chabanois)
37498c1725 Fix OMR-Tracker when latency is empty? 2024-01-12 20:17:08 +01:00
Ycarus (Yannick Chabanois)
d9b345e746 Add OMR-Schedule by default 2024-01-12 20:16:41 +01:00
Ycarus (Yannick Chabanois)
1313e545cc Fix OMR-Schedule category 2024-01-12 20:16:26 +01:00
Ycarus (Yannick Chabanois)
72177b29f6 Use Shadowsocks-Rust by default 2024-01-12 18:58:12 +01:00
Ycarus (Yannick Chabanois)
97ddfc51f2 Remove fw4 logs from Xray 2024-01-12 18:23:32 +01:00
Ycarus (Yannick Chabanois)
b0129f19e5 Remove fw4 logs from v2ray 2024-01-12 18:23:22 +01:00
Ycarus (Yannick Chabanois)
07f5ff7684 Remove fw4 logs from Shadowsocks-rust 2024-01-12 18:23:02 +01:00
Ycarus (Yannick Chabanois)
6194f82b39 Remove fw4 logs from Shadowsocks-libev 2024-01-12 18:22:39 +01:00
Ycarus (Yannick Chabanois)
29f0233618 remove fw4 log from omr-dscp 2024-01-12 18:22:15 +01:00
Ycarus (Yannick Chabanois)
e217e67bff Comment log info in omr-bypass nft 2024-01-12 18:21:52 +01:00
Ycarus (Yannick Chabanois)
d707e5cded Restore iptables script of omr-bypass 2024-01-12 18:21:28 +01:00
Ycarus (Yannick Chabanois)
5f95c98969 Fix output interface when master down 2024-01-12 17:37:52 +01:00
Ycarus (Yannick Chabanois)
d2fce4961e Limit redirections to LAN 2024-01-12 17:29:57 +01:00
Ycarus (Yannick Chabanois)
e05c057c63 Commit latencies 2024-01-12 17:29:21 +01:00
Ycarus (Yannick Chabanois)
f5b3aa6831 New version of OMR-Tracker 2024-01-12 17:28:40 +01:00
Ycarus (Yannick Chabanois)
bb64827a1e Fix openmptcprouter-full 2024-01-12 17:25:16 +01:00
Ycarus (Yannick Chabanois)
354157bbb0 Fix save xray config in openmptcprouter-vps 2024-01-11 18:31:51 +01:00
Ycarus (Yannick Chabanois)
84419a272e Add nft dependencies 2024-01-11 14:38:53 +01:00
Ycarus (Yannick Chabanois)
0a2f100686 Ignore DMARK and DSCP rules in openmptcprouter-vps 2024-01-11 11:59:20 +01:00
Ycarus (Yannick Chabanois)
b30f1951e2 Use srv_vpn1 instead of only vpn1 for VPN on server ByPass 2024-01-11 11:31:34 +01:00
Ycarus (Yannick Chabanois)
6e33eae78b Use nftables packages when kernel != 5.4 2024-01-11 11:27:05 +01:00
Ycarus (Yannick Chabanois)
5a311410cd remove shadowsocks sysctl 2024-01-11 11:26:31 +01:00
Ycarus (Yannick Chabanois)
5f4ad12d3a Add sysctl.d conf in openmptcprouter package 2024-01-11 11:13:02 +01:00
Ycarus (Yannick Chabanois)
26a5bcf811 Fix server vpn list on openmptcprouter-vps 2024-01-11 11:11:49 +01:00
Ycarus (Yannick Chabanois)
2f76e66e15 Fix log error on omr-tracker-ss 2024-01-11 11:11:14 +01:00
Ycarus (Yannick Chabanois)
79380e9c83 Fix and add automatic LAN as ifname source for proxy 2024-01-11 11:10:53 +01:00
Ycarus (Yannick Chabanois)
2feffb2c1e Various fix in OMR-DSCP 2024-01-11 11:10:09 +01:00
Ycarus (Yannick Chabanois)
127415b542 Fix clean on omr-bypass nft 2024-01-11 11:09:39 +01:00
Ycarus (Yannick Chabanois)
d1724fd915 Do not display VPN in omr-bypass interface 2024-01-11 11:09:06 +01:00
Ycarus (Yannick Chabanois)
d4eb02e586 Add nftables support to xray 2024-01-10 17:41:04 +01:00
Ycarus (Yannick Chabanois)
3f890976ed Add nftables support to v2ray 2024-01-10 17:40:43 +01:00
Ycarus (Yannick Chabanois)
9a141a377e Add nftables support to OpenMPTCProuter-VPS for server VPN 2024-01-10 17:39:45 +01:00
Ycarus (Yannick Chabanois)
e6bcc2951c Add nftables support to Shadowsocks-rust 2024-01-10 17:39:04 +01:00
Ycarus (Yannick Chabanois)
1d4a964169 Add nftables support to Shadowsocks-libev 2024-01-10 17:38:33 +01:00
Ycarus (Yannick Chabanois)
bde5555932 Add nftables support on omr-tracker proxy 2024-01-10 17:36:37 +01:00
Ycarus (Yannick Chabanois)
eb879b0095 Do not display OMR internal rules in firewall view 2024-01-10 17:35:53 +01:00
Ycarus (Yannick Chabanois)
0a31d4daf4 Check if server answer on all multipath interfaces 2024-01-10 17:35:17 +01:00
Ycarus (Yannick Chabanois)
18e99ca95c Only display supported encryption in Shadowsocks-Rust 2024-01-10 17:34:45 +01:00
Ycarus (Yannick Chabanois)
aecc558e9d Add nftables support to OMR-DSCP and separate interface and scripts 2024-01-10 17:34:13 +01:00
Ycarus (Yannick Chabanois)
f2a1250ccc Use omr-bypass nft for kernel > 5.4 2024-01-10 17:33:19 +01:00
Ycarus (Yannick Chabanois)
703fe46dd1 Add nftables support to omr-bypass 2024-01-10 17:33:00 +01:00
Ycarus (Yannick Chabanois)
80f2c3151a Move some script to cron instead of omr-tracker 2024-01-08 15:38:20 +01:00
Ycarus (Yannick Chabanois)
2a0beebe74 Remove auto disable of ModemManager if not used because modems are not visibles in interfaces directly and it's confusing, another solution must be found 2024-01-05 16:33:28 +01:00
Ycarus (Yannick Chabanois)
857f9f0ae1 Fix unbound restart loop when interfaces down 2024-01-04 17:32:13 +01:00
Ycarus (Yannick Chabanois)
a1c2c699a9 Fix Wizard display for OpenVPN 2024-01-04 17:26:22 +01:00
Ycarus (Yannick Chabanois)
e31af4e8ec Update ModemManager 2024-01-04 17:25:45 +01:00
Ycarus (Yannick Chabanois)
544d69742e Fix fw error 2024-01-01 21:01:18 +01:00
Ycarus (Yannick Chabanois)
c7dc600f82 Fix status page info when backup VPS is used 2023-12-30 08:51:42 +01:00
Ycarus (Yannick Chabanois)
5427b7a40c Add ByPass via server VPN support 2023-12-30 08:50:57 +01:00
Ycarus (Yannick Chabanois)
2160d47f4f Update OMR-ByPass IP list 2023-12-30 08:49:43 +01:00
Ycarus (Yannick Chabanois)
4c5361b215 Remove aquantia module 2023-12-29 18:21:12 +01:00
Ycarus (Yannick Chabanois)
1cf24d2475 Remove ipset migration 2023-12-28 15:45:20 +01:00
Ycarus (Yannick Chabanois)
20c219fdf2 Increase omr-tracker interval test for proxy 2023-12-28 15:44:57 +01:00
Ycarus (Yannick Chabanois)
08157799fb Reset modem when in failed state 2023-12-28 15:44:33 +01:00
Ycarus (Yannick Chabanois)
a04b44f56b Fix mptcp init due to latest ipcalc.sh changes 2023-12-28 15:44:05 +01:00
Ycarus (Yannick Chabanois)
01f17f82f6 Fix typo in mptcp init 2023-12-26 20:23:11 +01:00
Ycarus (Yannick Chabanois)
dfc9ea66c9 Fix default config for z8102ax 2023-12-26 20:06:44 +01:00
Ycarus (Yannick Chabanois)
cd85e5fb59 Don't use wrong device on OMR-Tracker when not yet available 2023-12-26 15:38:55 +01:00
Ycarus (Yannick Chabanois)
4a23a992f4 Only indicate that modem is not in ModemManager for now... 2023-12-25 09:54:32 +01:00
Ycarus (Yannick Chabanois)
8d88557722 Fix NDPI on ARM 2023-12-25 09:33:20 +01:00
Ycarus (Yannick Chabanois)
95cdac78e2 Rescan instead of restart ModemManager when modem missing, restart OpenPVN if not working 2023-12-25 09:24:59 +01:00
Ycarus (Yannick Chabanois)
f1d429e0ee Fix NDPI patch for kernel 5.4 2023-12-24 10:54:04 +01:00
Ycarus (Yannick Chabanois)
9971a1c093 Add kernel 6.7 restrictions 2023-12-23 08:43:04 +01:00
Ycarus (Yannick Chabanois)
0f9be6e08d Fix OMR-Tracker when launched without device on interface ready 2023-12-22 21:33:51 +01:00
Ycarus (Yannick Chabanois)
554267c727 Update NDPI 2023-12-22 20:25:35 +01:00
Ycarus (Yannick Chabanois)
4cd56cfc91 Shadowsocks-Rust can use only aes-256-gcm on OMR with Shadowsocks-go server for now 2023-12-22 20:21:23 +01:00
Ycarus (Yannick Chabanois)
9c8645ae28 Fix for DSCP 2023-12-22 20:20:29 +01:00
Ycarus (Yannick Chabanois)
2b5c9591ca Update cryptodev 2023-12-22 20:20:01 +01:00
Ycarus (Yannick Chabanois)
9ab72fc773 Fix Multipath to use all IPs 2023-12-20 15:31:14 +01:00
Ycarus (Yannick Chabanois)
0db896540c Fix find gateway in some cases 2023-12-20 15:30:43 +01:00
Ycarus (Yannick Chabanois)
6001c2f1a7 Doesn't remove multipath when not needed 2023-12-20 10:58:56 +01:00
Ycarus (Yannick Chabanois)
3d2f1df9ab Fix omr-tracker launch for specified interface 2023-12-20 10:56:14 +01:00
Ycarus (Yannick Chabanois)
437436c553 Should fix https://github.com/Ysurac/openmptcprouter/issues/3082 2023-12-20 10:55:43 +01:00
Ycarus (Yannick Chabanois)
57a0cf4e67 Update XRay 2023-12-18 09:42:29 +01:00
Ycarus (Yannick Chabanois)
5d4c0e2d22 Fix omr-test-speed-server 2023-12-15 19:31:07 +01:00
Ycarus (Yannick Chabanois)
ced4a76faa Add test count as setting for OMR-Tracker 2023-12-15 19:30:31 +01:00
Ycarus (Yannick Chabanois)
e374f7cb2e More log for MPTCP 2023-12-15 08:58:10 +01:00
Ycarus (Yannick Chabanois)
081d432ea4 Add more log 2023-12-15 08:48:11 +01:00
Ycarus (Yannick Chabanois)
fd35a9040f Dirty fix for openmptcprouter config 2023-12-14 16:22:36 +01:00
Ycarus (Yannick Chabanois)
59953aff5f Fix test upload speed to server 2023-12-14 16:22:12 +01:00
Ycarus (Yannick Chabanois)
f5b2a50a11 Fix token request loop 2023-12-13 21:39:19 +01:00
Ycarus (Yannick Chabanois)
9656539d48 Ignore routes when nexthop link is down 2023-12-13 14:24:46 +01:00
Ycarus (Yannick Chabanois)
4e8f5847f6 Double quote for sqm-autorate config 2023-12-13 10:59:20 +01:00
Ycarus (Yannick Chabanois)
b8d2414f51 Allow to change encryption on XRay Shadowsocks 2023-12-13 10:58:47 +01:00
Ycarus (Yannick Chabanois)
e41723e295 Check DNS only if external tests are not disabled 2023-12-13 10:57:47 +01:00
Ycarus (Yannick Chabanois)
7139a5db51 Fix on omr-test-speed for fasttest 2023-12-13 10:57:05 +01:00
Ycarus (Yannick Chabanois)
63d19c4861 Add OpenVPN DCO 2023-12-13 10:56:25 +01:00
Ycarus (Yannick Chabanois)
e1b86c3118 Check if unbound is working, else restart it 2023-12-13 10:55:30 +01:00
Ycarus (Yannick Chabanois)
231597a7a2 Should fix https://github.com/Ysurac/openmptcprouter/issues/3070 2023-12-11 09:18:58 +01:00
Ycarus (Yannick Chabanois)
e9fda36208 Force disable MPTCP when needed 2023-12-10 18:50:14 +01:00
Ycarus (Yannick Chabanois)
6c2ffa6cf0 Display core temp when available in all cases 2023-12-10 18:49:51 +01:00
Ycarus (Yannick Chabanois)
0e383c542c Force reload mptcp 2023-12-10 18:48:28 +01:00
Ycarus (Yannick Chabanois)
ba464a917a Remove MPTCP test for > 5.4 2023-12-10 18:48:06 +01:00
Ycarus (Yannick Chabanois)
7d567cd23d Fix https://github.com/Ysurac/openmptcprouter/issues/3069 2023-12-10 18:47:17 +01:00
Ycarus (Yannick Chabanois)
f1ea9f3db1 Fix partially issue when LAN interfance doesn't exist 2023-12-08 11:02:12 +01:00
Ycarus (Yannick Chabanois)
007374410e Add back Shadowsocks-Rust in wizard 2023-12-08 11:01:25 +01:00
Ycarus (Yannick Chabanois)
a57a418be6 Remove r8168 not needed patch 2023-12-07 14:58:48 +01:00
Ycarus (Yannick Chabanois)
4a660fdd72 Only display VPS available proxy 2023-12-06 18:04:53 +01:00
Ycarus (Yannick Chabanois)
9eca2b3ed7 Less logs by default 2023-12-06 14:26:26 +01:00
Ycarus (Yannick Chabanois)
a277c1c7b2 Should fix https://github.com/Ysurac/openmptcprouter/issues/3050 2023-12-06 14:25:39 +01:00
Ycarus (Yannick Chabanois)
8c8ae48f70 Add netxen-nix fix https://github.com/Ysurac/openmptcprouter/issues/3065 2023-12-05 17:49:43 +01:00
Ycarus (Yannick Chabanois)
6dbc29ae7b Restart OpenVPN only if not started and with a CA 2023-12-05 16:36:14 +01:00
Ycarus (Yannick Chabanois)
8ec0bdff9b Add debug mode to modemamanger to be able to run AT commands 2023-12-05 16:35:47 +01:00
Ycarus (Yannick Chabanois)
b129ad30ae Make shadowsocks-libev not remove rust rules 2023-12-01 22:55:26 +01:00
Ycarus (Yannick Chabanois)
d40c0c29ad Fix on multi servers for Shadowsocks-Rust and XRay 2023-12-01 09:46:00 +01:00
Ycarus (Yannick Chabanois)
480b6575ee Remove no more needed patch for r8152 2023-11-27 17:57:30 +01:00
Ycarus (Yannick Chabanois)
53a6411d5b Update luci-mod-network 2023-11-27 16:37:15 +01:00
Ycarus (Yannick Chabanois)
6920f7227f Fix TTL display https://github.com/Ysurac/openmptcprouter/issues/3045 2023-11-27 16:35:32 +01:00
Ycarus (Yannick Chabanois)
62676ca47d Update netifd and add patch to compile on 6.6 2023-11-24 17:31:52 +01:00
Ycarus (Yannick Chabanois)
c019b885fe Fix Shadowsocks* issue when rules are not fully applied 2023-11-23 20:03:18 +01:00
Ycarus (Yannick Chabanois)
30f04aeaf2 Update golang 2023-11-23 20:02:47 +01:00
Ycarus (Yannick Chabanois)
9fd78af7ea Restart modemmanager when modem stay in a pending mode 2023-11-23 20:02:33 +01:00
Ycarus (Yannick Chabanois)
8221386432 Add some missing license information in packages 2023-11-22 20:11:43 +01:00
Ycarus (Yannick Chabanois)
8ba0e21376 Update systemtap 2023-11-22 20:10:17 +01:00
Ycarus (Yannick Chabanois)
00164ca23f Update Realtek r8168 2023-11-22 20:09:56 +01:00
Ycarus (Yannick Chabanois)
4194e2ab61 Update Realtek r8152 2023-11-22 20:08:29 +01:00
Ycarus (Yannick Chabanois)
c8226e5abc Update ipcalc 2023-11-22 20:07:54 +01:00
Ycarus (Yannick Chabanois)
5feb37f799 Update cryptodev-linux 2023-11-22 20:07:08 +01:00
Ycarus (Yannick Chabanois)
a5afa39b39 Update Realtek r8125 driver 2023-11-22 17:10:13 +01:00
Ycarus (Yannick Chabanois)
fc01eb0381 Remove not needed file for sqm-autorate 2023-11-22 16:39:28 +01:00
Ycarus (Yannick Chabanois)
9bbd30da5b Fix omr-test-speed when SQM is disabled 2023-11-22 14:58:37 +01:00
Ycarus (Yannick Chabanois)
c207315fb9 Fix restart omr-tracker when not available for an interface 2023-11-22 11:34:44 +01:00
Ycarus (Yannick Chabanois)
9b30e900fc Fix V2Ray default configuration to use MPTCP 2023-11-22 11:33:48 +01:00
Ycarus (Yannick Chabanois)
d5aaf23938 Disable IPv6 delegation on default WAN interfaces and created via Wizard, fix typo on z8102 network config 2023-11-21 15:17:29 +01:00
Ycarus (Yannick Chabanois)
d9c47c8c52 Keep LAN gateway setting when Wizard is saved 2023-11-20 20:13:17 +01:00
Ycarus (Yannick Chabanois)
0b6cb9e64c Compile image for RPI5 2023-11-17 17:36:20 +01:00
Ycarus (Yannick Chabanois)
a567f7f8a2 Fix XRay remove rules 2023-11-17 17:35:19 +01:00
Ycarus (Yannick Chabanois)
b52d3584e5 Fix backup server getting keys 2023-11-17 17:34:51 +01:00
Ycarus (Yannick Chabanois)
a4cd28a5d1 Separate watchdog and modem init for z8102 2023-11-15 16:28:39 +01:00
Ycarus (Yannick Chabanois)
a5e026d6eb Update netifd 2023-11-13 14:55:38 +01:00
Ycarus (Yannick Chabanois)
8515a680aa Remove random pause after connection failure 2023-11-13 14:54:26 +01:00
Ycarus (Yannick Chabanois)
d3715ded36 Force a delay threshold in ms for sqm autorate as calculation doesn't always work 2023-11-12 19:52:31 +01:00
Ycarus (Yannick Chabanois)
6162e15c0c Fix z8102ax leds 2023-11-10 11:22:39 +01:00
Ycarus (Yannick Chabanois)
c7f53f2840 Fix network, fix modems and add modems LEDs for ZBT Z8102AX 2023-11-10 10:14:34 +01:00
Ycarus (Yannick Chabanois)
f358304707 Fix issue when server use IPv6 2023-11-10 10:13:08 +01:00
Ycarus (Yannick Chabanois)
6a4820663f Add missing patch for modemmanager 2023-11-08 20:29:56 +01:00
Ycarus (Yannick Chabanois)
2d6ddd92aa Fix gateway for OpenVPN in some case 2023-11-07 19:26:53 +01:00
Ycarus (Yannick Chabanois)
c5320984f1 Should fix https://github.com/Ysurac/openmptcprouter/issues/3028#issuecomment-1798648176 2023-11-07 15:39:22 +01:00
Ycarus (Yannick Chabanois)
510c13a841 Restart missing WAN tracker when needed 2023-11-06 21:29:20 +01:00
Ycarus (Yannick Chabanois)
7dd7b50596 Force remove of ncp-disable option in openvpn 2023-11-06 16:22:29 +01:00
Ycarus (Yannick Chabanois)
9ad0d58e81 Force remove of ncp-disable option in openvpn 2023-11-06 16:22:15 +01:00
Ycarus (Yannick Chabanois)
5b32c33c05 Fix when VPS contact is a DNS 2023-11-06 16:21:28 +01:00
Ycarus (Yannick Chabanois)
170ef44489 Add z8102 watchdog package 2023-11-05 19:42:51 +01:00
Ycarus (Yannick Chabanois)
c6835d325b Fix on sqm-autorate 2023-11-05 19:11:30 +01:00
Ycarus (Yannick Chabanois)
da6e20600e Fixes on redirection when using XRray or V2Ray 2023-11-05 19:11:08 +01:00
Ycarus (Yannick Chabanois)
bd629c7b83 Force ModemManager to be less verbose 2023-11-05 19:10:14 +01:00
Ycarus (Yannick Chabanois)
cc789dbafc Set OpenVPN as default VPN 2023-11-04 08:24:55 +01:00
Ycarus (Yannick Chabanois)
0df8928298 Fix for OpenVPN in openmptcprouter-vps 2023-11-04 08:23:49 +01:00
Ycarus (Yannick Chabanois)
d8cdc0b88e Add xray and v2ray protocols support to omr-tracker-server 2023-11-04 08:23:14 +01:00
Ycarus (Yannick Chabanois)
696b9e1d0e Add support for IPv6 in multipath for 6.x kernels 2023-11-04 08:22:38 +01:00
Ycarus (Yannick Chabanois)
5f51b9229c Update ModemManager 2023-11-04 08:22:10 +01:00
Ycarus (Yannick Chabanois)
77d8d7084b Add chacha20 suport to OpenVPN 2023-11-04 08:21:31 +01:00
Ycarus (Yannick Chabanois)
8845bb446a Update libqmi 2023-11-04 08:20:40 +01:00
Ycarus (Yannick Chabanois)
107f8ef0e5 Update libmbim 2023-11-04 08:20:26 +01:00
Ycarus (Yannick Chabanois)
8826903b5f Update iproute2 2023-11-02 14:15:16 +01:00
Ycarus (Yannick Chabanois)
1101daba60 Fix ModemManager restart loop 2023-11-02 09:48:21 +01:00
Ycarus (Yannick Chabanois)
47ac658fd4 Remove 00-nego, make more issues than fixes 2023-10-31 15:30:07 +01:00
Ycarus (Yannick Chabanois)
dc450ffccd Force shadowsocks-redir and shadowsocks-rules in openmptpcrouter-full 2023-10-31 12:37:39 +01:00
Ycarus (Yannick Chabanois)
5b3bddd53e No need to change tc on glorytun-udp 2023-10-31 12:37:17 +01:00
Ycarus (Yannick Chabanois)
66478adfac Fix Xray VLESS Reality init 2023-10-25 17:03:00 +02:00
Ycarus (Yannick Chabanois)
954faf5515 Fix OMR-ByPass proto with IPv6 2023-10-24 11:28:33 +02:00
Ycarus (Yannick Chabanois)
982b856db2 Changes on xtables for 6.6 kernel 2023-10-23 14:41:31 +02:00
Ycarus (Yannick Chabanois)
b49db635ee Check that server is not disabled on VPS script before using it 2023-10-23 14:40:44 +02:00
Ycarus (Yannick Chabanois)
987c7ff911 Fix on shadowsocks-libev install 2023-10-23 14:40:22 +02:00
Ycarus (Yannick Chabanois)
666b8fbbdd Fix https://github.com/Ysurac/openmptcprouter/issues/3005 2023-10-21 07:27:46 +02:00
Ycarus (Yannick Chabanois)
b8ca72b410 Changes needed for kernel 6.6 support 2023-10-19 12:05:34 +02:00
Ycarus (Yannick Chabanois)
b2f4ad38ee Add ipset dependency to omr-bypass 2023-10-19 07:15:43 +02:00
Ycarus (Yannick Chabanois)
513e71aee8 Change when modemmanager device fail 2023-10-18 11:01:10 +02:00
Ycarus (Yannick Chabanois)
05a4db1523 Remove from luci packages some files that can work without luci interface 2023-10-18 11:00:33 +02:00
Ycarus (Yannick Chabanois)
8369094924 Add XRay VLESS REALITY protocol support 2023-10-17 17:35:03 +02:00
Ycarus (Yannick Chabanois)
c52f081647 Try to get more space on github actions 2023-10-13 21:48:24 +02:00
Ycarus (Yannick Chabanois)
a3fd1e880e Add info that Shadowsocks-go doesn't support chacha20 2023-10-09 18:50:25 +02:00
Ycarus (Yannick Chabanois)
4c19132ebd Add Shadowsocks-go traffic 2023-10-09 18:50:00 +02:00
Ycarus (Yannick Chabanois)
e93e2a6ab0 Fix loop restart of openmptcprouter-vps when shadowsocks-rust is used 2023-10-06 16:52:16 +02:00
Ycarus (Yannick Chabanois)
7aec8f9470 Fix error when VPN is set to none 2023-10-06 16:51:34 +02:00
Ycarus (Yannick Chabanois)
e56c73bf7d Fix issue when bypassing a proto without ndpi 2023-10-06 15:04:05 +02:00
Ycarus (Yannick Chabanois)
2ee3878886 Fix wait_test parameter on omr-tracker 2023-10-06 11:28:08 +02:00
Ycarus (Yannick Chabanois)
5869e2f604 Fix RUTX50 Leds 2023-10-06 11:17:44 +02:00
Ycarus (Yannick Chabanois)
4f7efcd911 Fix Shadowsocks Rust tracker 2023-10-06 11:16:52 +02:00
Ycarus (Yannick Chabanois)
fbcbcc80ab Fix Shadowsocks Rust crypto change 2023-10-05 17:45:21 +02:00
Ycarus (Yannick Chabanois)
4804de5241 Should fix https://github.com/Ysurac/openmptcprouter/issues/2989 2023-10-05 07:51:57 +02:00
Ycarus (Yannick Chabanois)
23d024beb7 Fix Shadowsocks Rust password 2023-10-04 12:03:25 +02:00
Ycarus (Yannick Chabanois)
9519b73051 Fix Xray Shadowsocks 2022 key 2023-10-04 12:00:52 +02:00
Ycarus (Yannick Chabanois)
bea73de8fc Force disable Fast Open for Shadowsocks Rust/Go 2023-10-04 11:25:47 +02:00
Ycarus (Yannick Chabanois)
1f152e63c9 Fixes on Shadowsocks to VPS 2023-10-03 17:51:43 +02:00
Ycarus (Yannick Chabanois)
84f0cf5782 Changes for RUTX support on 6.1 kernel 2023-10-03 11:53:06 +02:00
Ycarus (Yannick Chabanois)
cd69bc6454 Add services check for XRay and Shadowsocks-Rust 2023-10-02 21:25:23 +02:00
Ycarus (Yannick Chabanois)
8746eaf337 Fixes on MPTCP support with 6.1 kernel and XRay 2023-10-02 21:24:32 +02:00
Ycarus (Yannick Chabanois)
6d89898a84 Remove mno-outlin-atomics for Rust 2023-10-01 07:39:51 +02:00
Ycarus (Yannick Chabanois)
a049f0f415 Add shadowsocks-Rust luci interface 2023-09-29 21:33:48 +02:00
Ycarus (Yannick Chabanois)
d07ccb47ff Add Rust language 2023-09-29 21:32:42 +02:00
Ycarus (Yannick Chabanois)
4296ac92e9 Replace RUTX by RUTX12 and RUTX50 arch 2023-09-29 17:06:13 +02:00
Ycarus (Yannick Chabanois)
ec85665ba8 Compile XRay and Shadowsock Rust by default 2023-09-29 15:04:17 +02:00
Ycarus (Yannick Chabanois)
a1232136d8 Add XRay and Shadowsocks Rust support for openmptcprouter-vps 2023-09-29 15:03:44 +02:00
Ycarus (Yannick Chabanois)
cc2df89ed3 Add XRay and Shadowsocks Rust support for omr-tracker 2023-09-29 15:03:16 +02:00
Ycarus (Yannick Chabanois)
339198a19e Add V2Ray and Shadowsocks Rust support in Wizard adn status page 2023-09-29 15:02:19 +02:00
Ycarus (Yannick Chabanois)
804aec1589 Add XRay and Shadowsocks Rust support in OMR-ByPass 2023-09-29 15:00:35 +02:00
Ycarus (Yannick Chabanois)
cab2b285e9 Add Shadowsocks-rust 2023-09-29 14:59:32 +02:00
Ycarus (Yannick Chabanois)
ee1ffa2bd8 Add XRay 2023-09-29 14:58:47 +02:00
Ycarus (Yannick Chabanois)
a816b09134 Launch or stop modemmanager if it's used or not 2023-09-29 14:57:54 +02:00
Ycarus (Yannick Chabanois)
1785f0c237 Allow omr-test-speed-server script to request token on API server 2023-09-29 14:52:31 +02:00
Ycarus (Yannick Chabanois)
879124665f Update V2Ray 2023-09-29 14:51:42 +02:00
Ycarus (Yannick Chabanois)
b69ee0cbcc Fix log error on omr-tracker post tracking 2023-09-29 14:44:42 +02:00
Ycarus (Yannick Chabanois)
591488fd8d Set bbr for kernel 6.1 and bbr2 for 5.4 as default TCP Congestion control 2023-09-29 14:43:48 +02:00
Ycarus (Yannick Chabanois)
3418554713 Set mlvpn higher buffer 2023-09-29 14:42:55 +02:00
Ycarus (Yannick Chabanois)
f151e152dc Fix typo in omr-bypass 2023-09-29 14:41:43 +02:00
Ycarus (Yannick Chabanois)
ff365a35b4 Update iproute2 2023-09-29 14:40:20 +02:00
Ycarus (Yannick Chabanois)
c5f6a26bb1 Update Golang 2023-09-29 14:39:34 +02:00
Ycarus (Yannick Chabanois)
0f3078a19c Fix v2ray tracker 2023-09-26 18:17:18 +02:00
Ycarus (Yannick Chabanois)
c0d9f2536b Add dependencies 2023-09-23 16:51:04 +02:00
Ycarus (Yannick Chabanois)
d303c1bce4 Remove ncp-disable for mptcp over vpn using OpenVPN 2023-09-14 11:15:40 +02:00
Ycarus (Yannick Chabanois)
8390c42e12 Change sleep duration for omr-tracker after error 2023-09-14 11:13:47 +02:00
Ycarus (Yannick Chabanois)
517ffd4567 Fix compilation for 5.4 2023-09-13 10:48:17 +02:00
Ycarus (Yannick Chabanois)
59074daba9 V2Ray Trojan protocol can do UDP over TCP, disable UDP proxy using V2Ray by default 2023-09-12 11:20:33 +02:00
Ycarus (Yannick Chabanois)
e27ec3fe47 Update netifd 2023-09-07 17:22:15 +02:00
Ycarus (Yannick Chabanois)
370a2479a5 Replace BBRv2 config with BBRv3 2023-09-07 14:17:10 +02:00
Ycarus (Yannick Chabanois)
ba8fe7b65e Display BBRv3 TCP Congestion Control as bbr3 2023-09-07 14:16:38 +02:00
Ycarus (Yannick Chabanois)
69b24baa37 Modify sysctl settings 2023-09-06 09:21:54 +02:00
Ycarus (Yannick Chabanois)
715e3439e7 Sync ipv6 omr-test-speed with IPv4 version 2023-09-06 09:21:32 +02:00
Ycarus (Yannick Chabanois)
094994d166 Disable initcwnd & initrwnd 2023-09-06 09:21:00 +02:00
Ycarus (Yannick Chabanois)
d4d03aee79 Fix previous multipath fix to remove if* interfaces 2023-09-05 12:45:02 +02:00
Ycarus (Yannick Chabanois)
c67d378688 Fix some log issues with V2Ray 2023-09-05 10:12:28 +02:00
Ycarus (Yannick Chabanois)
113274239a Do more test before changing MTU 2023-09-05 10:11:21 +02:00
Ycarus (Yannick Chabanois)
d019485836 Remove if* interface in MPTCP 2023-09-05 10:10:01 +02:00
Ycarus (Yannick Chabanois)
89e18e1fcf More log on public IP change 2023-09-01 09:25:59 +02:00
Ycarus (Yannick Chabanois)
f74c4c8c2f Set default TCP Congestion Control to BBR 2023-09-01 09:25:31 +02:00
Ycarus (Yannick Chabanois)
e880e13d16 Revert VPN MTU to 1500 and default VPN to Glorytun TCP 2023-09-01 09:24:52 +02:00
Ycarus (Yannick Chabanois)
4a1ac7bbbb Add multiple backup on server support 2023-09-01 09:23:28 +02:00
Ycarus (Yannick Chabanois)
da1744ae8a Update OpenVPN and MPTCP patch 2023-08-31 10:07:18 +02:00
Ycarus (Yannick Chabanois)
d5b8e6751f Update V2Ray MPTCP patch 2023-08-30 21:08:57 +02:00
Ycarus (Yannick Chabanois)
84849238a8 Remove a v2ray log 2023-08-30 21:08:28 +02:00
Ycarus (Yannick Chabanois)
8ff01885e3 Fixes, add v2ray protocols and wan only status in router API 2023-08-30 21:07:35 +02:00
Ycarus (Yannick Chabanois)
90c906f1bc Fix routes log when there is no VPN 2023-08-30 08:44:11 +02:00
Ycarus (Yannick Chabanois)
57018100ea Fix omr-test-speed server 2023-08-29 10:49:44 +02:00
Ycarus (Yannick Chabanois)
199763fc51 Update sqm autorate 2023-08-29 10:49:10 +02:00
Ycarus (Yannick Chabanois)
85dc4c0887 Divide post-tracking script in smaller scripts 2023-08-29 10:05:22 +02:00
Ycarus (Yannick Chabanois)
54403bd3e2 Fix #2939 2023-08-28 11:21:32 +02:00
Ycarus (Yannick Chabanois)
844807f25a Fix V2RAY SOCKS port 2023-08-26 07:33:46 +02:00
Ycarus (Yannick Chabanois)
e1d2d03608 Fix Glorytun-UDP path settings 2023-08-25 15:41:44 +02:00
Ycarus (Yannick Chabanois)
6e70daf2e6 Resolve domain in omr-tracker-server in case of server IP change 2023-08-25 15:41:17 +02:00
Ycarus (Yannick Chabanois)
e9057e9a37 Fix shadowsocks password support 2023-08-25 15:40:31 +02:00
Ycarus (Yannick Chabanois)
3d61e812be Fix errors in cake autorate 2023-08-25 15:40:03 +02:00
Ycarus (Yannick Chabanois)
1e70503fe0 Add V2Ray Socks Protocol support 2023-08-25 15:39:34 +02:00
Ycarus (Yannick Chabanois)
a8387400ba Add V2Ray Trojan and VMess protocol support 2023-08-25 11:06:40 +02:00
Ycarus (Yannick Chabanois)
051577195e Add possibility to send mail when server or proxy is down/up 2023-08-24 14:36:42 +02:00
Ycarus (Yannick Chabanois)
34dca22728 Remove compilation of 5.15 kernel image 2023-08-23 16:24:41 +02:00
Ycarus (Yannick Chabanois)
229f7231e8 Disable speedtest by default in wizard 2023-08-22 14:26:46 +02:00
Ycarus (Yannick Chabanois)
41bda6b275 Enable MPTCP via sysctl 2023-08-22 13:49:27 +02:00
Ycarus (Yannick Chabanois)
e2cfa2b790 Fix for ubond and SQM 2023-08-22 13:48:52 +02:00
Ycarus (Yannick Chabanois)
8eabafb541 Update sqm-autorate 2023-08-22 12:46:35 +02:00
Ycarus (Yannick Chabanois)
765a1307fb Change MLVPN interface description 2023-08-22 12:45:21 +02:00
Ycarus (Yannick Chabanois)
5fcbe4ea6e Change Glorytun TCP buffer size 2023-08-22 12:44:55 +02:00
Ycarus (Yannick Chabanois)
53e69f9ced Change test for wizard speedtest 2023-08-17 11:32:31 +02:00
Ycarus (Yannick Chabanois)
363f07142f Add OpenVPN with MPTCP upstream support 2023-08-17 11:31:53 +02:00
Ycarus (Yannick Chabanois)
04e1c1cd1b Start mptcp init earlier 2023-08-17 11:30:58 +02:00
Ycarus (Yannick Chabanois)
546a37ce4c Remove WAN6 interface 2023-08-15 21:47:43 +02:00
Ycarus (Yannick Chabanois)
87f621b52d Add log for sqm autorate at good place 2023-08-11 21:20:32 +02:00
Ycarus (Yannick Chabanois)
2f76438cc2 Allow to disable routes set by mptcp init script 2023-08-11 21:20:01 +02:00
Ycarus (Yannick Chabanois)
101426c8cf Add options for mptcpd in MPTCP luci interface 2023-08-11 21:19:36 +02:00
Ycarus (Yannick Chabanois)
809fcd713d Disable SQM on OMRVPN 2023-08-11 21:18:56 +02:00
Ycarus (Yannick Chabanois)
c8e3100385 Fix SQM speed from auto speedcheck 2023-08-11 21:18:23 +02:00
Ycarus (Yannick Chabanois)
65034c126c Add an init script for mptcpd 2023-08-11 21:17:49 +02:00
Ycarus (Yannick Chabanois)
ce845a6cd3 Set force mss back for OMRVPN 2023-08-11 21:17:17 +02:00
Ycarus (Yannick Chabanois)
430de516aa Increase Glorytun TCP buffer 2023-08-11 21:16:29 +02:00
Ycarus (Yannick Chabanois)
93be578a89 Update glorytun TCP 2023-08-11 21:16:10 +02:00
Ycarus (Yannick Chabanois)
9faa13a099 Update mptcpd and add ndiffports path manager 2023-08-09 21:57:52 +02:00
Ycarus (Yannick Chabanois)
8f5b99689f Fix omr-test-speed 2023-08-09 21:57:11 +02:00
Ycarus (Yannick Chabanois)
33ef12e7e3 Can do speedtest in multiple server config: current server is used for test 2023-08-09 21:56:48 +02:00
Ycarus (Yannick Chabanois)
7674501a93 Set pm_type via mptcp init script 2023-08-09 21:56:02 +02:00
Ycarus (Yannick Chabanois)
8ea31add30 Use omr-tracker default IPs for SQM-Autorate 2023-08-09 21:55:31 +02:00
Ycarus (Yannick Chabanois)
9714c5bfbc Fix wizard part to do a speedtest after validation 2023-08-09 21:54:58 +02:00
Ycarus (Yannick Chabanois)
be04e6d733 Out kernel path manager only since 5.19 2023-08-09 21:54:25 +02:00
Ycarus (Yannick Chabanois)
6cbb420ffa Fixes for test speed scripts 2023-08-08 21:55:28 +02:00
Ycarus (Yannick Chabanois)
d889f6f629 Enable SQM autorate if min rate is 0 2023-08-08 21:54:36 +02:00
Ycarus (Yannick Chabanois)
c4328a5bdb Change default SQM overhead to 44 2023-08-08 12:52:35 +02:00
Ycarus (Yannick Chabanois)
dd44455e20 Fix OpenVPN support 2023-08-08 12:52:13 +02:00
Ycarus (Yannick Chabanois)
2d3b37888d Add automatic speedtest in wizard 2023-08-08 12:51:50 +02:00
Ycarus (Yannick Chabanois)
da603e9310 Add upload support to server speed test 2023-08-08 12:50:39 +02:00
Ycarus (Yannick Chabanois)
19b447669e Fix on MPTCP settings 2023-08-08 12:49:45 +02:00
Ycarus (Yannick Chabanois)
7adc290974 Various changes for 6.1 in MPTCP Luci interface 2023-08-08 12:49:14 +02:00
Ycarus (Yannick Chabanois)
b67619a38b Change diag website 2023-08-04 22:24:01 +02:00
Ycarus (Yannick Chabanois)
8e2f33ac32 Some fix on encryption 2023-08-04 22:23:43 +02:00
Ycarus (Yannick Chabanois)
2b59c7ae22 Fix, add proxy in status json and add encryption in uci settings 2023-08-04 22:22:51 +02:00
Ycarus (Yannick Chabanois)
89f028597d Various changes for 6.1 kernel in MPTCP interface 2023-08-04 22:19:59 +02:00
Ycarus (Yannick Chabanois)
2883f879fd Fix issue when v2ray already set on router with fresh VPS install 2023-08-03 19:16:25 +02:00
Ycarus (Yannick Chabanois)
e8f8d6c5b6 Fix and add entry in json for status page 2023-08-03 19:15:41 +02:00
Ycarus (Yannick Chabanois)
83719131be Increase OMRVPN MTU 2023-08-02 19:36:55 +02:00
Ycarus (Yannick Chabanois)
c6f9554266 Fix depends for om-bypass 2023-08-02 19:36:35 +02:00
Ycarus (Yannick Chabanois)
466e3762ce Use latest glorytun fork changes 2023-08-02 19:36:00 +02:00
Ycarus (Yannick Chabanois)
2ea4a49e4a Remove warning about v2ray on 6.1 2023-08-02 12:51:50 +02:00
Ycarus (Yannick Chabanois)
1cff3b1faa Update v2ray and add kernel 6.1 MPTCP aggregation support 2023-08-02 12:51:03 +02:00
Ycarus (Yannick Chabanois)
1085ee50d9 Update iperf3 and add MPTCP support 2023-08-01 20:54:21 +02:00
Ycarus (Yannick Chabanois)
9ee90e4546 Add kmod-mlx4-core 2023-07-29 16:19:56 +02:00
Ycarus (Yannick Chabanois)
046e93f4a6 Fix init scripts 2023-07-29 16:19:26 +02:00
Ycarus (Yannick Chabanois)
a1a9b90155 Add an alert that V2ray doesn't aggregate on 6.1 kernel for now 2023-07-29 16:18:34 +02:00
Ycarus (Yannick Chabanois)
182cb253c1 Use cake for new interfaces 2023-07-29 16:18:03 +02:00
Ycarus (Yannick Chabanois)
23bbb48cb0 Add fullcone IPv6 2023-07-29 16:17:25 +02:00
Ycarus (Yannick Chabanois)
d9e248545c Add mptcp_add_addr_timeout option in luci MPTCP interface 2023-07-27 13:22:47 +02:00
Ycarus (Yannick Chabanois)
d95a4f9ee0 Make stap available 2023-07-27 13:22:11 +02:00
Ycarus (Yannick Chabanois)
d31ae36737 Update ModemManager 2023-07-27 13:21:27 +02:00
Ycarus (Yannick Chabanois)
3959237a3d Should add MPTCP support to v2ray... 2023-07-23 09:12:27 +02:00
Ycarus (Yannick Chabanois)
6365cfcc80 Fix tun0 mtu 2023-07-23 08:17:43 +02:00
Ycarus (Yannick Chabanois)
1b02c5f174 Fix firewall redirection with destination IP 2023-07-21 21:40:54 +02:00
Ycarus (Yannick Chabanois)
b362091628 Fix MPTCP menu display on kernel 6.1 2023-07-21 21:40:19 +02:00
Ycarus (Yannick Chabanois)
75694cfc65 Fix for SQM autorate 2023-07-18 09:14:34 +02:00
Ycarus (Yannick Chabanois)
00267a8e86 Make ndpi-netfilter work on all arch 2023-07-15 14:35:21 +02:00
Ycarus (Yannick Chabanois)
715c0cd0bc Some VPN interfaces default config changes 2023-07-14 08:28:20 +02:00
Ycarus (Yannick Chabanois)
e613de8cff Some sqm-autorate fixes 2023-07-14 08:27:29 +02:00
Ycarus (Yannick Chabanois)
377c34fd05 Disable sqm on VPN interface if not download/upload speed 2023-07-14 08:26:14 +02:00
Ycarus (Yannick Chabanois)
099c6cd947 Fix DNS reset issue on IP 10.2* 2023-07-11 17:12:52 +02:00
Ycarus (Yannick Chabanois)
ecf0b89798 Update sqm autorate 2023-07-07 20:02:40 +02:00
Ycarus (Yannick Chabanois)
8b270e7264 Fix omr-bypass 2023-07-07 17:24:11 +02:00
Ycarus (Yannick Chabanois)
b8e40b5cde Fix sqm-autorate init 2023-07-06 08:47:58 +02:00
Ycarus (Yannick Chabanois)
cca347992c Disable LUA header check for tracebox 2023-07-04 18:31:37 +02:00
Ycarus (Yannick Chabanois)
13b4d20763 Fix log error on gre tunnel fw 2023-06-30 12:50:43 +02:00
Ycarus (Yannick Chabanois)
5ce0bcc714 Update omr-bypass db 2023-06-29 13:21:14 +02:00
Ycarus (Yannick Chabanois)
2549ddcff2 Use PKG_BUILD_FLAGS:=no-mips16 insed of PKG_USE_MIPS6:=0 2023-06-28 18:26:23 +02:00
Ycarus (Yannick Chabanois)
9c253a2823 Remove xtables-addons 2023-06-24 08:12:10 +02:00
Ycarus (Yannick Chabanois)
55cf527c17 Update v2ray 2023-06-24 06:25:01 +02:00
Ycarus (Yannick Chabanois)
41abdb1b0f Remove rdisc6 dependancy 2023-06-24 06:17:38 +02:00
Ycarus (Yannick Chabanois)
ff90fb808f Change omrvpn interface MTU to jumbo frame (at least for test...) 2023-06-23 08:24:59 +02:00
Ycarus (Yannick Chabanois)
a013fc112c Remove ndisc6 2023-06-22 16:08:56 +02:00
Ycarus (Yannick Chabanois)
5a9f66a097 Update ndisc6 2023-06-22 07:17:29 +02:00
Ycarus (Yannick Chabanois)
58699fa807 use ICMP echo instead of ICMP timestamp for sqm autorate 2023-06-21 13:36:01 +02:00
Ycarus (Yannick Chabanois)
2c80e11f87 Change master connection weight 2023-06-21 09:55:51 +02:00
Ycarus (Yannick Chabanois)
cab489f0b0 Update cake-autorate 2023-06-21 09:54:57 +02:00
Ycarus (Yannick Chabanois)
e7699c70a7 kill all autorate on stop 2023-06-09 20:00:01 +02:00
Ycarus (Yannick Chabanois)
5f8f4ee4fd Use Busybox syslogd 2023-06-09 19:59:35 +02:00
Ycarus (Yannick Chabanois)
193a98bb7f Fix on sqm autorate 2023-06-04 20:54:15 +02:00
Ycarus (Yannick Chabanois)
f14e11ded3 Fix autorate restart (really) 2023-06-03 08:31:06 +02:00
Ycarus (Yannick Chabanois)
aaa5499ee9 Fix autorate restart 2023-06-03 08:29:17 +02:00
Ycarus (Yannick Chabanois)
06e55401aa Fix & update sqm autorate 2023-06-01 19:54:32 +02:00
Ycarus (Yannick Chabanois)
fb63e3779a remove previsouly created ipset 2023-05-29 08:10:45 +02:00
Ycarus (Yannick Chabanois)
88e16d51f1 Do no create ipset if there is no empty for a protocol 2023-05-28 07:51:38 +02:00
Ycarus (Yannick Chabanois)
b80d40f5ec Fix on route 2023-05-26 21:31:30 +02:00
Ycarus (Yannick Chabanois)
4f52b59d98 Fix OMR-ByPass 2023-05-26 21:31:06 +02:00
Ycarus (Yannick Chabanois)
4747aa184b Fix for vnstat 2023-05-26 13:24:32 +02:00
Ycarus (Yannick Chabanois)
72eba24ded Merge remote-tracking branch 'refs/remotes/origin/develop' into develop 2023-05-25 13:11:44 +02:00
Yoan Pintas
cc624d9e52
feat: support orange and free bypass (#186) 2023-05-25 13:11:37 +02:00
Ycarus (Yannick Chabanois)
7fcfd3be07 omr-bypass: New way to bypass services without nDPI 2023-05-25 13:09:49 +02:00
Ycarus (Yannick Chabanois)
9c1c926ad4 Fix ndpi-netfilter compilation on all platforms 2023-05-16 14:01:23 +02:00
Ycarus (Yannick Chabanois)
dfaa6ba1f0 Update golang and enable MPTCP by default 2023-05-15 21:01:36 +02:00
Ycarus (Yannick Chabanois)
e22b863f26 Add Systemtap package 2023-05-09 21:15:28 +02:00
Ycarus (Yannick Chabanois)
2d41636606 Force arm64 instead of aarch64 in ndpi 2023-05-07 08:55:17 +02:00
Ycarus (Yannick Chabanois)
35ff6d8e9b Modify when mptcp reload is needed 2023-05-07 08:54:29 +02:00
Ycarus (Yannick Chabanois)
34c6565016 Some changes for IPv6 support in omr-bypass 2023-05-07 08:53:12 +02:00
Ycarus (Yannick Chabanois)
84a0fe47b3 Fix uci on omr-bypass 2023-05-02 08:32:19 +02:00
Ycarus (Yannick Chabanois)
313640cc9f Fix ndpi 2023-05-01 19:28:41 +02:00
Ycarus (Yannick Chabanois)
9d90f36870 Fix ndpi-netfilter2 2023-05-01 10:53:34 +02:00
Ycarus (Yannick Chabanois)
78fa507956 Update ndpi-netfilter2 2023-04-28 20:50:41 +02:00
Ycarus (Yannick Chabanois)
103031bfb4 Limit fast-classifier to 5.4 kernel 2023-04-28 20:50:04 +02:00
Ycarus (Yannick Chabanois)
87f4bf7069 Disable ndpi-netfilter2 on 6.1 for now 2023-04-28 08:50:09 +02:00
Ycarus (Yannick Chabanois)
19e0b5aab2 Limit shortcut-fe to 5.4 kernel 2023-04-26 20:26:54 +02:00
Ycarus (Yannick Chabanois)
6518d5f09c Revert previous change on ndpi 2023-04-26 08:43:57 +02:00
Ycarus (Yannick Chabanois)
f4981b7c59 Fix omr-bypass start 2023-04-25 21:40:44 +02:00
Ycarus (Yannick Chabanois)
2d4462794b Fix v2ray init 2023-04-25 21:40:22 +02:00
Ycarus (Yannick Chabanois)
2ac1c905a9 Fix ndpi-netfilter2 compilation 2023-04-25 19:44:04 +02:00
Ycarus (Yannick Chabanois)
ab0adc0ddd Update openmptcprouter-full 2023-04-24 19:54:37 +02:00
Ycarus (Yannick Chabanois)
fceb367f72 Fix aquantia only for 5.4 2023-04-24 19:45:16 +02:00
Ycarus (Yannick Chabanois)
ccead6d656 Disable aquantia on 5.15 and 6.1 kernel 2023-04-24 08:46:26 +02:00
Ycarus (Yannick Chabanois)
fc6a935c0c Fix v2ray 2023-04-24 08:30:04 +02:00
Ycarus (Yannick Chabanois)
368534b006 Fix #2824 2023-04-23 20:23:11 +02:00
Ycarus (Yannick Chabanois)
adc1ba3d5d Should fix #2825 2023-04-23 20:22:30 +02:00
Ycarus (Yannick Chabanois)
4e8a988a4d Add python3-ellftool package 2023-04-23 08:24:03 +02:00
Ycarus (Yannick Chabanois)
1de632d000 Force offloading to be off 2023-04-22 08:10:10 +02:00
Ycarus (Yannick Chabanois)
e752f6369d Add qnap-301w image compilation 2023-04-22 08:09:36 +02:00
Ycarus (Yannick Chabanois)
9df5d2048e ndpi-netfilter not available for kernel 6.1 other than x86_64 for now 2023-04-22 08:08:34 +02:00
Ycarus (Yannick Chabanois)
0133a320e2 Update v2ray-plugin 2023-04-06 21:02:45 +02:00
Ycarus (Yannick Chabanois)
997d74cba8 Remove v2ray-plugin 2023-04-06 21:01:59 +02:00
Ycarus (Yannick Chabanois)
7eaf573d60 Update v2ray 2023-04-06 21:01:25 +02:00
Ycarus (Yannick Chabanois)
d322ac87b8 Update golang 2023-04-06 21:01:09 +02:00
Ycarus (Yannick Chabanois)
e992652783 tun0 sqm autorate wizard config 2023-04-02 19:26:04 +02:00
Ycarus (Yannick Chabanois)
3e47ecf0c3 Add GSO/GRO/TSO/LRO & UFO configuration for each network interface 2023-04-01 08:32:30 +02:00
Ycarus (Yannick Chabanois)
be8b7165fc Detect when VPS and router kernel doesn't match 2023-04-01 08:31:11 +02:00
Ycarus (Yannick Chabanois)
063a468465 Update SQM autorate 2023-03-28 20:26:02 +02:00
Ycarus (Yannick Chabanois)
a3fc59f80e Fix glorytun buffer 2023-03-28 20:24:13 +02:00
Ycarus (Yannick Chabanois)
42514609b5 Enable MTU calculation again on Glorytun 2023-03-10 20:27:35 +01:00
Ycarus (Yannick Chabanois)
5ca7fd25b0 Optimize Glorytun TCP 2023-03-10 20:26:46 +01:00
Ycarus (Yannick Chabanois)
6a15da5486 Update ndpi-netfilter2 2023-03-08 20:40:19 +01:00
Ycarus (Yannick Chabanois)
6e5006b7e1 Add MPTCP upstream support to dsvpn 2023-03-04 08:24:31 +01:00
Ycarus (Yannick Chabanois)
e88d3b7b07 Update iproute2 2023-02-28 21:00:08 +01:00
Ycarus (Yannick Chabanois)
93fb75da17 Optimize some network settings and set MPTCP when needed 2023-02-25 15:21:56 +01:00
Ycarus (Yannick Chabanois)
9337bd30da Update ndpi-netfilter2 2023-02-18 17:37:34 +01:00
Ycarus (Yannick Chabanois)
efe3594a22 Small fix on getting modemmanager info 2023-02-18 17:36:40 +01:00
Ycarus (Yannick Chabanois)
8bd23a967e Use omr-test-speed only on IPv4 2023-02-18 15:41:02 +01:00
Ycarus (Yannick Chabanois)
6a148735e4 Fix on rmmod 2023-02-18 15:40:28 +01:00
Ycarus (Yannick Chabanois)
fdb1aa84bf Update ModemManager 2023-02-18 15:39:00 +01:00
Ycarus (Yannick Chabanois)
a45690c33b Update libqmi 2023-02-18 15:38:45 +01:00
Ycarus (Yannick Chabanois)
f5195e4a2e Update libmbim 2023-02-18 15:38:36 +01:00
Ycarus (Yannick Chabanois)
ad64751988 Change optimisation values 2023-01-25 20:31:39 +01:00
Ycarus (Yannick Chabanois)
7375f8363d Add shadowsocks compile fix 2023-01-13 21:29:38 +01:00
Ycarus (Yannick Chabanois)
6ca6ba2244 Update modemmanager, libmbim and libqmi 2023-01-13 17:53:14 +01:00
Ycarus (Yannick Chabanois)
a496b2affc Fix 49db48e3dc (commitcomment-95940169) 2023-01-12 19:41:46 +01:00
Ycarus (Yannick Chabanois)
6992a21269 Force mptcp routes settings when force link set 2023-01-11 13:11:52 +01:00
Ycarus (Yannick Chabanois)
8dcd96b4ff Fix MPTCP luci app 2023-01-09 20:06:30 +01:00
Ycarus (Yannick Chabanois)
e412adf7ca Try to reduce mvebu images size 2023-01-09 12:39:17 +01:00
Ycarus (Yannick Chabanois)
3a99d97348 Enable back mtu_fix 2023-01-09 12:38:59 +01:00
Ycarus (Yannick Chabanois)
9d544752a4 Various IPv6 fixes 2023-01-03 20:54:40 +01:00
Ycarus (Yannick Chabanois)
b3ebd3a83d More IPv6 fixes 2023-01-02 19:56:50 +01:00
Ycarus (Yannick Chabanois)
d773ee086d Add 6.1 support to MPTCP interface 2023-01-01 10:09:50 +01:00
Ycarus (Yannick Chabanois)
ed36b06234 IPv6 fixes 2023-01-01 09:16:35 +01:00
Ycarus (Yannick Chabanois)
f814139c3d Changes for kernel 6.1 support 2022-12-30 20:14:56 +01:00
Ycarus (Yannick Chabanois)
af843b8156 Fix multipath script 2022-12-30 12:59:43 +01:00
Ycarus (Yannick Chabanois)
833e0814eb Force dnsmasq to have ipset support 2022-12-30 12:59:30 +01:00
Ycarus (Yannick Chabanois)
1ebc65b1c9 Remove the -w of iptables-restore 2022-12-29 19:42:35 +01:00
Ycarus (Yannick Chabanois)
1d046f0ca3 Add 6.1 Github Actions compilation 2022-12-21 12:57:10 +01:00
Ycarus (Yannick Chabanois)
b069e56633 Add fullconenat 2022-12-21 12:50:49 +01:00
Ycarus (Yannick Chabanois)
cb31c04475 Update r8152 2022-12-21 12:50:32 +01:00
Ycarus (Yannick Chabanois)
d1760e0efb Update r8125 2022-12-21 12:50:18 +01:00
Ycarus (Yannick Chabanois)
31ea55283c Disable rtl8812ct-au driver for 6.1 2022-12-21 12:49:41 +01:00
Ycarus (Yannick Chabanois)
a90fd84297 Update xtables-addons 2022-12-21 12:48:51 +01:00
Ycarus (Yannick Chabanois)
915501a3ef Update r8168 2022-12-21 12:48:33 +01:00
Ycarus (Yannick Chabanois)
89c7a3c206 Update shortcut-fe 2022-12-21 12:47:56 +01:00
Ycarus (Yannick Chabanois)
cf871353f8 Add atinout package 2022-12-08 09:43:47 +01:00
Ycarus (Yannick Chabanois)
dd381f45f9 Fix dependencies 2022-12-05 08:34:42 +01:00
Ycarus (Yannick Chabanois)
136eca2afa Fix IPv6 check in omr-tracker 2022-12-04 08:32:41 +01:00
Ycarus (Yannick Chabanois)
dd48923a0b Really fix dhcp menu 2022-12-02 20:31:04 +01:00
Ycarus (Yannick Chabanois)
88dcdd748b Various route fixes 2022-12-02 17:00:36 +01:00
Ycarus (Yannick Chabanois)
7f7feb0c91 Fix DHCP menu 2022-12-02 16:59:09 +01:00
Ycarus (Yannick Chabanois)
c0503fcc06 Fix interface display in status page 2022-11-28 20:17:54 +01:00
Ycarus (Yannick Chabanois)
77afcb8d32 Force dhcp on LAN interface 2022-11-28 20:15:28 +01:00
Ycarus (Yannick Chabanois)
8dba67311a Fix #2679 - DHCP gateway setting 2022-11-25 20:26:58 +01:00
Ycarus (Yannick Chabanois)
b151a4ec90 Update ndpi-netfilter2 2022-11-24 20:59:06 +01:00
Ycarus (Yannick Chabanois)
18542cb4d7 Update ndpi-netfilter2 2022-11-22 20:17:00 +01:00
Ycarus (Yannick Chabanois)
b799eb7e9b Try to reinstall packages less often and only for 1 day 2022-11-19 07:30:22 +01:00
Ycarus (Yannick Chabanois)
27be75b03c Add r5s image compilation 2022-11-18 18:14:15 +01:00
Ycarus (Yannick Chabanois)
5f0b791810 Update r8125 and r8168 drivers 2022-11-16 20:08:36 +01:00
Ycarus (Yannick Chabanois)
82f8b3c838 Small IPv6 fixes 2022-11-04 18:10:09 +01:00
Ycarus (Yannick Chabanois)
bb6cb0e8ae Update for Github Actions 2022-10-26 20:09:53 +02:00
Ycarus (Yannick Chabanois)
8834808de2 Change MPTCP default setting 2022-10-26 20:09:23 +02:00
Ycarus (Yannick Chabanois)
43c844fe7e Update v2fly 2022-10-20 10:23:27 +02:00
Ycarus (Yannick Chabanois)
a74e9a455c Update ndpi-netfilter2 2022-10-20 10:22:59 +02:00
Ycarus (Yannick Chabanois)
570af8dff5 Update ModemManager 2022-10-20 10:22:29 +02:00
Ycarus (Yannick Chabanois)
0f092db924 Update libqmi 2022-10-20 10:22:09 +02:00
Ycarus (Yannick Chabanois)
f8ee275ab3 Update libmbim 2022-10-20 10:22:01 +02:00
Ycarus (Yannick Chabanois)
7046310f7c Update iperf3 2022-10-19 19:28:04 +02:00
Ycarus (Yannick Chabanois)
70c25569e7 Commit only when needed 2022-10-17 08:14:40 +02:00
Ycarus (Yannick Chabanois)
5195a71f6a Should fix #2615 2022-10-17 08:14:06 +02:00
Ycarus (Yannick Chabanois)
410791e530 Fix error in Github Actions 2022-10-17 08:13:31 +02:00
Ycarus (Yannick Chabanois)
6008b81460 Restart dnsmasq if needed 2022-10-06 08:39:48 +02:00
Ycarus (Yannick Chabanois)
66310e3866 MPTCP Luci interface, set MPTCP version with select option 2022-10-03 14:03:40 +02:00
Ycarus (Yannick Chabanois)
8404d5e0e4 Change luci-app-firewall dependencies 2022-09-30 19:40:21 +02:00
Ycarus (Yannick Chabanois)
a427152a96 Fix Shadowsocks tracker 2022-09-30 08:57:51 +02:00
Ycarus (Yannick Chabanois)
bd97c3d15e Disable openvpn bonding 2022-09-29 20:42:22 +02:00
Ycarus (Yannick Chabanois)
1c41df07c4 Fix mptcp version and openmptcprouter-vps script 2022-09-29 20:42:01 +02:00
Ycarus (Yannick Chabanois)
dc6ae5907f Fix OpenMPTCProuter VPS script 2022-09-27 21:09:17 +02:00
Ycarus (Yannick Chabanois)
2b61393bac reload openmptcprouter-vps less often 2022-09-26 21:06:30 +02:00
Ycarus (Yannick Chabanois)
c8dbb17bd0 Add a token function to openmptcprouter-vps script 2022-09-25 19:03:25 +02:00
Ycarus (Yannick Chabanois)
827a93c478 Use iptables-legacy instead of iptables 2022-09-25 19:02:32 +02:00
Ycarus (Yannick Chabanois)
ca45d952c2 Remove not needed iptables-save output 2022-09-24 10:17:37 +02:00
Ycarus (Yannick Chabanois)
25cdf439ca Interface with multiples IPs are working now 2022-09-19 19:34:15 +02:00
Ycarus (Yannick Chabanois)
44ff4334bd Fix typo and add help 2022-09-19 19:33:48 +02:00
Ycarus (Yannick Chabanois)
a1404fd3eb ndpi-netfilter patch 2022-09-16 08:32:15 +02:00
Ycarus (Yannick Chabanois)
a196e8b86a Launch sqm-autorate only if max/min upload/download speed are set 2022-09-15 20:55:53 +02:00
Ycarus (Yannick Chabanois)
3d8e996809 Add some USB dependencies 2022-09-15 12:58:22 +02:00
Ycarus (Yannick Chabanois)
d08810bd89 Fix V2Ray UDP disable 2022-09-15 09:07:47 +02:00
Ycarus (Yannick Chabanois)
218fb8a6e5 Various small fixes 2022-09-12 19:55:17 +02:00
Ycarus (Yannick Chabanois)
70571e546b add a sleep between rmmod for sip alg 2022-08-30 21:02:19 +02:00
Ycarus (Yannick Chabanois)
d7c59fffae Fix release on upgrade, header and status page 2022-08-30 21:01:54 +02:00
Ycarus (Yannick Chabanois)
58c4f6cb28 Small SIP ALG fixes 2022-08-29 20:08:59 +02:00
Ycarus (Yannick Chabanois)
0023879724 Fix SIP ALG 2022-08-27 07:50:12 +02:00
ta264
ed7d5abfdf
Fix omr rename (#115)
* Fix omr-rename

* Sign CLA
2022-08-26 08:19:09 +02:00
Ycarus (Yannick Chabanois)
fad135665c Fix omr-bypass 2022-08-25 13:59:44 +02:00
Ycarus (Yannick Chabanois)
a054179ac7 Fix wizard when LAN interface set outside wizard 2022-08-23 20:51:32 +02:00
Ycarus (Yannick Chabanois)
addb792bed Workaround for Glorytun UDP when hostname used for server 2022-08-23 20:50:28 +02:00
Ycarus (Yannick Chabanois)
91811b555a More MPTCP over VPN fixes 2022-08-22 20:50:19 +02:00
Ycarus (Yannick Chabanois)
4e3e03fa43 Fix MPTCP over VPN 2022-08-22 18:42:33 +02:00
Ycarus (Yannick Chabanois)
4804253d45 Fix MPTCP over VPN 2022-08-22 13:37:05 +02:00
Ycarus (Yannick Chabanois)
9952f3d416 Fix for MPTCP over VPN 2022-08-22 12:54:25 +02:00
Ycarus (Yannick Chabanois)
e162e00638 Launch omr-bypass only if not launching 2022-08-19 21:55:15 +02:00
Ycarus (Yannick Chabanois)
d5bdf2f3c5 Fix ndpi support 2022-08-18 18:44:45 +02:00
Ycarus (Yannick Chabanois)
3a5fb9a6a5 Update CAKE autorate 2022-08-17 20:52:21 +02:00
Ycarus (Yannick Chabanois)
2ba607e340 Fix status page proxy check 2022-08-17 20:51:53 +02:00
Ycarus (Yannick Chabanois)
7289c40028 Update RPI EEPROM 2022-08-17 20:03:39 +02:00
openmptcprouter-translation
04f77f602f
Translations update from Weblate (#105)
* Translated using Weblate (Italian)

Currently translated at 93.7% (269 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/

* Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/

* Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/

* Translated using Weblate (Italian)

Currently translated at 90.8% (269 of 296 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 93.1% (54 of 58 strings)

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/zh_Hans/

Co-authored-by: tiziano <tiziano@suonovivo.com>
Co-authored-by: Weblate <noreply@weblate.org>
2022-08-15 19:10:53 +02:00
Ycarus (Yannick Chabanois)
7d528284e0 Fix https://github.com/Ysurac/openmptcprouter/issues/2465 2022-08-14 08:53:24 +02:00
Ycarus (Yannick Chabanois)
54bd5c2571 Back to ifconfig.co 2022-08-12 14:13:13 +02:00
openmptcprouter-translation
86cbd43849
Translations update from Weblate (#103)
* Translated using Weblate (Italian)

Currently translated at 58.3% (7 of 12 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-quota
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-quota/it/

* Translated using Weblate (Italian)

Currently translated at 19.3% (6 of 31 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-tracker
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-tracker/it/

* Translated using Weblate (Italian)

Currently translated at 93.7% (269 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/

* Translated using Weblate (Italian)

Currently translated at 95.6% (22 of 23 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-bypass
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-bypass/it/

* Translated using Weblate (Italian)

Currently translated at 79.4% (27 of 34 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-dscp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-dscp/it/

* Translated using Weblate (Italian)

Currently translated at 79.4% (31 of 39 strings)

Translation: OpenMPTCProuter/LuCI/applications/snmpd
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationssnmpd/it/

* Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/

* Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/

* Translated using Weblate (French)

Currently translated at 100.0% (296 of 296 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/fr/

* Translated using Weblate (French)

Currently translated at 100.0% (58 of 58 strings)

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/fr/

* Translated using Weblate (French)

Currently translated at 97.4% (38 of 39 strings)

Translation: OpenMPTCProuter/LuCI/applications/sqm-autorate
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationssqm-autorate/fr/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 96.9% (287 of 296 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/zh_Hans/

* Translated using Weblate (Chinese (Simplified))

Currently translated at 91.3% (53 of 58 strings)

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/zh_Hans/

* Translated using Weblate (Occitan)

Currently translated at 54.3% (161 of 296 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/oc/

* Translated using Weblate (German)

Currently translated at 52.3% (155 of 296 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/de/

* Translated using Weblate (Italian)

Currently translated at 90.8% (269 of 296 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/

Co-authored-by: tiziano <tiziano@suonovivo.com>
Co-authored-by: Deleted User <noreply+28@weblate.org>
Co-authored-by: Weblate <noreply@weblate.org>
2022-08-12 14:12:13 +02:00
Ycarus (Yannick Chabanois)
462dbc2dea Try to fix DNS issue 2022-08-11 08:53:11 +02:00
Ycarus (Yannick Chabanois)
bcafb1ee4d Fix https://github.com/Ysurac/openmptcprouter/issues/2460 2022-08-10 19:43:55 +02:00
Ycarus (Yannick Chabanois)
f116fa43c1 Update translations templates 2022-08-09 20:45:57 +02:00
Ycarus (Yannick Chabanois)
4435e86d5d Update omr-6in4 2022-08-08 20:50:47 +02:00
Ycarus (Yannick Chabanois)
b9d5d51d42 Fix https://github.com/Ysurac/openmptcprouter/issues/2453 and add a limit on ICMP 2022-08-07 20:10:15 +02:00
Ycarus (Yannick Chabanois)
d700848f06 Fix https://github.com/Ysurac/openmptcprouter/issues/2456 2022-08-07 20:09:41 +02:00
Ycarus (Yannick Chabanois)
e61239f203 Fix https://github.com/Ysurac/openmptcprouter/issues/2454 2022-08-07 20:08:50 +02:00
Ycarus (Yannick Chabanois)
b58311efbf Fix ndpi-netfilter compilation on 5.4 2022-08-04 14:08:29 +02:00
Ycarus (Yannick Chabanois)
d5c8604783 Disable outline atomics only for ARM64 2022-08-04 08:34:13 +02:00
Ycarus (Yannick Chabanois)
41314d1a5b Fix ndpi-netfilter2 compilation on ARM 2022-08-03 21:36:39 +02:00
Ycarus (Yannick Chabanois)
643dd1e00d Add option to disable UDP transport via V2Ray 2022-07-31 17:30:15 +02:00
Ycarus (Yannick Chabanois)
4f53ff1fba omr-bypass v2ray fixes 2022-07-31 16:29:44 +02:00
Ycarus (Yannick Chabanois)
018e8b47f4 Fix v2ray restart 2022-07-31 16:28:59 +02:00
Ycarus (Yannick Chabanois)
0e1c92846d Remove crontab log 2022-07-29 12:47:37 +02:00
Ycarus (Yannick Chabanois)
5932ad876d Update ndpi-netfilter2 2022-07-29 12:47:20 +02:00
Ycarus (Yannick Chabanois)
77ea978dd1 Remove not needed vnstat log 2022-07-28 19:16:21 +02:00
Ycarus (Yannick Chabanois)
0fdca79728 Remove some not needed log 2022-07-28 19:16:01 +02:00
Ycarus (Yannick Chabanois)
2fa26a3238 Fix MTU test and check if autorate is really running 2022-07-28 19:15:23 +02:00
Ycarus (Yannick Chabanois)
bc139fb048 Fix status displayed gateway when a static route is set 2022-07-28 19:14:48 +02:00
Ycarus (Yannick Chabanois)
04c4161845 Fix MTU detection 2022-07-27 13:30:24 +02:00
Ycarus (Yannick Chabanois)
81f221ec07 Fix when device have no IP and multipath command launched 2022-07-27 13:29:54 +02:00
Ycarus (Yannick Chabanois)
8cde301b92 Fix static route and errors in log 2022-07-27 13:29:30 +02:00
Ycarus (Yannick Chabanois)
2c57ab4d43 Update mptcpd 2022-07-24 18:32:24 +02:00
Ycarus (Yannick Chabanois)
a614a47da2 Add latency in post-tracking 2022-07-23 09:23:27 +02:00
Ycarus (Yannick Chabanois)
966d58c0cf Add mptcp_stale_loss_cnt sysctl setting for 5.15 kernel 2022-07-22 15:28:56 +02:00
Ycarus (Yannick Chabanois)
debdc682e1 Fix adding latency to interface 2022-07-22 15:27:03 +02:00
Ycarus (Yannick Chabanois)
4a3bde8e09 Add MPTCP version support to use VPS with 5.4 kernel when router use 5.15 2022-07-14 21:34:36 +02:00
Ycarus (Yannick Chabanois)
1243f58e21 Remove settings when OpenVPN is not used 2022-07-14 17:12:41 +02:00
Ycarus (Yannick Chabanois)
3865cfa800 Gateway is fixed for OpenVPN bonding 2022-07-14 17:12:22 +02:00
Ycarus (Yannick Chabanois)
d84c079b96 Force config retrieve if server IP change 2022-07-14 17:11:51 +02:00
Ycarus (Yannick Chabanois)
171cc553b2 Force set firewall when wizard is saved 2022-07-13 08:20:19 +02:00
Ycarus (Yannick Chabanois)
ae667515ab Add changes for v2ray fw rules modifications support 2022-07-11 20:21:59 +02:00
Ycarus (Yannick Chabanois)
b1f3f3aa88 Use ip instead of ifconfig in multipath 2022-07-08 20:41:52 +02:00
Ycarus (Yannick Chabanois)
ca8d80bc06 Fix wizard 2022-07-06 13:54:34 +02:00
Ycarus (Yannick Chabanois)
ea4289223c Add speed and duplex setting in network page 2022-07-04 21:46:22 +02:00
Ycarus (Yannick Chabanois)
b869935ff7 Remove display of gre and loopback in MPTCP app 2022-07-04 21:44:51 +02:00
Ycarus (Yannick Chabanois)
3cb3b80572 Cleaner firewall config 2022-06-28 14:09:16 +02:00
Ycarus (Yannick Chabanois)
680ee18f66 Simplify RUTX modem config 2022-06-28 14:08:55 +02:00
Ycarus (Yannick Chabanois)
d16ab0859c Log when firewall reload 2022-06-28 14:08:37 +02:00
Ycarus (Yannick Chabanois)
bde0b7bcfe Simplify config for RUTX 2022-06-28 14:08:15 +02:00
Ycarus (Yannick Chabanois)
5e73f89764 Fix on status view 2022-06-28 14:07:45 +02:00
Ycarus (Yannick Chabanois)
a26cb1d90b Fixes on default gw 2022-06-24 18:12:43 +02:00
Ycarus (Yannick Chabanois)
ff82abbb27 Fix modems connection for RUTX (and maybe some other cases) 2022-06-21 22:09:28 +02:00
Ycarus (Yannick Chabanois)
90408a197a Fix carrier return on FW types concatenation 2022-06-20 20:25:37 +02:00
Ycarus (Yannick Chabanois)
6b294cc9df Enable led when interface up 2022-06-20 08:39:42 +02:00
Ycarus (Yannick Chabanois)
e982d7da9b Fix fw adding rules when not needed 2022-06-20 08:39:17 +02:00
Ycarus (Yannick Chabanois)
129dc624b3 Reload FW only on needed server 2022-06-19 11:10:41 +02:00
Ycarus (Yannick Chabanois)
58679b713b Reload sqm-autorate when sqm reload 2022-06-19 11:10:04 +02:00
Ycarus (Yannick Chabanois)
edf63868b1 Use debian mirror for ndisc6 2022-06-18 15:54:34 +02:00
Ycarus (Yannick Chabanois)
15032839ea Fix another typo and populate fstab only if needed 2022-06-18 13:07:57 +02:00
Ycarus (Yannick Chabanois)
02cade7643 Fix typo 2022-06-18 09:39:41 +02:00
Ycarus (Yannick Chabanois)
f110c5309e Fixes for shadowsocks dead loop and multiple fw run 2022-06-17 20:13:55 +02:00
Ycarus (Yannick Chabanois)
0d7c0427a1 Use omr-tracker for sqm-autorate 2022-06-17 20:13:05 +02:00
Ycarus (Yannick Chabanois)
a3c247ed6f Fix remove rule with source IP on VPS FW 2022-06-17 20:12:31 +02:00
Ycarus (Yannick Chabanois)
90edfd880f Add addlatency as a *default setting 2022-06-16 19:30:22 +02:00
Ycarus (Yannick Chabanois)
3c76172c2f VPS FW cosmetic changes 2022-06-16 19:29:55 +02:00
Ycarus (Yannick Chabanois)
c5f6e2fc95 Fix software offloading 2022-06-16 19:29:03 +02:00
Ycarus (Yannick Chabanois)
b8c8658720 Add Cake Autorate 2022-06-16 19:28:25 +02:00
Ycarus (Yannick Chabanois)
c4157bfc0f Modify openmptcprouter mini 2022-06-03 20:45:19 +02:00
Ycarus (Yannick Chabanois)
0ddda315d0 Fix omr tracker server log 2022-06-03 20:44:35 +02:00
Ycarus (Yannick Chabanois)
9dc249d7c5 Fix Github actions 2022-06-02 19:11:11 +02:00
Ycarus (Yannick Chabanois)
990790e6c8 Fix server failover for glorytun udp 2022-06-02 19:10:56 +02:00
Ycarus (Yannick Chabanois)
ab417428f9 Update github actions 2022-06-02 16:35:59 +02:00
Ycarus (Yannick Chabanois)
c9ad59784e Return latencies without endline 2022-06-02 15:54:17 +02:00
Ycarus (Yannick Chabanois)
3836f9a225 Fix server routes when multiples servers are defined 2022-06-02 15:53:28 +02:00
Ycarus (Yannick Chabanois)
bc14122b3e Fix QoS in wizard 2022-06-02 15:53:04 +02:00
Ycarus (Yannick Chabanois)
3419876fd5 Fix server failover 2022-06-02 15:52:43 +02:00
Ycarus (Yannick Chabanois)
bf1c4154d0 Fix Github actions 2022-06-01 20:44:52 +02:00
Ycarus (Yannick Chabanois)
0e2d6b6b22 Changes in Guthub Actions due to kernel name in path 2022-06-01 08:11:57 +02:00
Ycarus (Yannick Chabanois)
072c061af6 Install mptcpd only on 5.15 kernel 2022-05-31 11:49:16 +02:00
Ycarus (Yannick Chabanois)
824fce0c83 Use correct golang 2022-05-30 21:54:45 +02:00
Ycarus (Yannick Chabanois)
3506d1fcef No mptcpd build on kernel 5.4 2022-05-30 18:32:58 +02:00
Ycarus (Yannick Chabanois)
8927d6d2fe API not responding is not a fatal error for connection 2022-05-29 20:50:36 +02:00
Ycarus (Yannick Chabanois)
fdd81a9532 Change setting text 2022-05-29 20:49:43 +02:00
Ycarus (Yannick Chabanois)
864f453fe6 Add quiet to modprobe commands 2022-05-29 20:48:59 +02:00
Ycarus (Yannick Chabanois)
cd3b59436f Set txqueuelen to 20 by default for WANs 2022-05-29 20:47:47 +02:00
Ycarus (Yannick Chabanois)
005844c674 Fix for 5.15 multipath 2022-05-29 20:37:39 +02:00
Ycarus (Yannick Chabanois)
ac15a5b374 Fixes when default gateway is disabled 2022-05-28 08:37:39 +02:00
Ycarus (Yannick Chabanois)
902d16b334 Add QoS support in wizard 2022-05-28 08:36:44 +02:00
Ycarus (Yannick Chabanois)
97abaf3d32 Fix typo 2022-05-28 08:35:52 +02:00
Ycarus (Yannick Chabanois)
fc623a5036 Fix iperf 2022-05-28 08:24:27 +02:00
Ycarus (Yannick Chabanois)
9df93a526b
Merge pull request #53 from flesser/mptcpd-v0.9
mptcpd: update to v0.9 and simplify patch
2022-05-23 21:12:01 +02:00
Ycarus (Yannick Chabanois)
e2adf724b7 Update argon theme 2022-05-23 20:41:24 +02:00
Ycarus (Yannick Chabanois)
dc01b097d2 Display as direct output when public IP is the same as one wan public ip 2022-05-23 20:40:51 +02:00
Florian Karuhtz
3d68e2acdc Add CLA 2022-05-20 16:56:56 +02:00
Florian Karuhtz
7a2e7ae1e9 Update mptcpd to v0.9 and simplify patch 2022-05-20 16:49:04 +02:00
Ycarus (Yannick Chabanois)
eedbfc56b7 Add option to enable/disable SIP ALG 2022-05-18 21:06:09 +02:00
Ycarus (Yannick Chabanois)
b174b3ba3e Fix wizard when modifying a macvlan interface 2022-05-01 12:34:43 +02:00
Ycarus (Yannick Chabanois)
19f8760c22 Add an iperf server in asia 2022-04-29 13:39:25 +02:00
Ycarus (Yannick Chabanois)
4f1c731a25 Add milkywan iperf and file to omr-test-speed 2022-04-29 13:24:14 +02:00
Ycarus (Yannick Chabanois)
883ecab510 Force ntpd restart after wizard changes 2022-04-26 20:43:16 +02:00
Ycarus (Yannick Chabanois)
94a4b68fd9 Add date/time of VPS and router when there is a time diff) 2022-04-26 20:39:36 +02:00
Ycarus (Yannick Chabanois)
36b50e7a5c Only launch init script restart if the script exist 2022-04-26 07:46:40 +02:00
Ycarus (Yannick Chabanois)
0a71133624 Merge branch 'master' into develop 2022-04-22 17:14:13 +02:00
Ycarus (Yannick Chabanois)
dd0cd92a35 test install workaround 2022-04-22 17:13:53 +02:00
Ycarus (Yannick Chabanois)
cc5c57af33 Fix omr-bypass 2022-04-21 21:55:00 +02:00
Ycarus (Yannick Chabanois)
8ef28ba4bc Update shadowsocks v2ray-plugin 2022-04-18 07:43:15 +02:00
Ycarus (Yannick Chabanois)
1a8dfa260d Remove use of DNS for modem on RUTX 2022-04-16 17:41:13 +02:00
Ycarus (Yannick Chabanois)
c4c90ed46c Add wifi interfaces and wifi leds for RUTX12 2022-04-15 15:24:25 +02:00
Ycarus (Yannick Chabanois)
31140cceec Fix typo 2022-04-15 10:48:19 +02:00
Ycarus (Yannick Chabanois)
98b9bcd231 Add RUTX12 leds support 2022-04-15 09:00:22 +02:00
Ycarus (Yannick Chabanois)
3694172044 Fix omr-modemamanger connection type 2022-04-15 08:59:51 +02:00
Ycarus (Yannick Chabanois)
3e8c9b87f8 Add grpcurl package 2022-04-14 19:57:40 +02:00
Ycarus (Yannick Chabanois)
2d9f9e7fa2 Change RUTX network configuration (vlan1 & 2 are reserved) 2022-04-14 19:57:01 +02:00
Ycarus (Yannick Chabanois)
8b127c6367 Force ntp client 2022-04-11 20:44:13 +02:00
Ycarus (Yannick Chabanois)
b8985b8ea8 Fix config for RUTX 2022-04-07 08:28:41 +02:00
Ycarus (Yannick Chabanois)
d525478bc0 Add RUTX11 modem configuration 2022-04-06 18:28:16 +02:00
Ycarus (Yannick Chabanois)
65a593e904 No set VPS fw when omr-bypass not defined because it's not related 2022-04-06 17:34:22 +02:00
Ycarus (Yannick Chabanois)
e959dc316f Fix bypass error when device is a path 2022-04-04 13:24:30 +02:00
Ycarus (Yannick Chabanois)
2248e12100 Make wizard page faster to display 2022-04-04 13:24:07 +02:00
Ycarus (Yannick Chabanois)
af89e81dff Fix wizard page 2022-03-31 20:16:12 +02:00
Ycarus (Yannick Chabanois)
e3eae6d44e Check that API give an output before setting fw 2022-03-29 19:54:58 +02:00
Ycarus (Yannick Chabanois)
a949d1f557 Run script for fw only if server defined 2022-03-28 18:29:13 +02:00
Ycarus (Yannick Chabanois)
a4d9f6dd39 Fix status page when proto is modemmanager 2022-03-16 20:54:34 +01:00
Ycarus (Yannick Chabanois)
eb87da4feb Add network modems configuration for RUTX12 2022-03-14 20:57:38 +01:00
Ycarus (Yannick Chabanois)
cf15b5161c Update ModemManger, libmbim and libqmi 2022-03-11 20:05:50 +01:00
Ycarus (Yannick Chabanois)
6c08bdbe9f Fix omr-tracker 2022-03-08 15:47:26 +01:00
Ycarus (Yannick Chabanois)
00a1919ad1 Add rutx in github actions build 2022-02-23 21:00:52 +01:00
Ycarus (Yannick Chabanois)
57c6fbc13f Add milkywan tv in DSCP 2022-02-23 20:59:59 +01:00
Ycarus (Yannick Chabanois)
2ea13ecfaa Fix status page error abproxy disabled when MPTCP over VPN is used on all interfaces 2022-02-20 09:04:39 +01:00
Ycarus (Yannick Chabanois)
76430cd440
Merge pull request #52 from openmptcprouter-translation/weblate-omr-luciapplicationsopenmptcprouter
Translations update from Weblate
2022-02-19 11:31:03 +01:00
Weblate Admin
644705d89b Translated using Weblate (Italian)
Currently translated at 92.6% (266 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/
2022-02-19 10:30:22 +00:00
Weblate Admin
343eb53b1f Translated using Weblate (German)
Currently translated at 53.6% (154 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/de/
2022-02-19 10:30:22 +00:00
Ycarus (Yannick Chabanois)
9d72983e0a
Merge pull request #51 from openmptcprouter-translation/weblate-omr-luciapplicationsopenmptcprouter
Translations update from Weblate
2022-02-19 10:08:40 +01:00
Weblate Admin
6af1388964 Translated using Weblate (French)
Currently translated at 100.0% (50 of 50 strings)

Translation: OpenMPTCProuter/LuCI/mod/dashboard
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/lucimoddashboard/fr/
2022-02-19 09:07:28 +00:00
Weblate Admin
8a4ac3e1e6 Translated using Weblate (French)
Currently translated at 94.8% (37 of 39 strings)

Translation: OpenMPTCProuter/LuCI/applications/snmpd
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationssnmpd/fr/
2022-02-19 09:07:28 +00:00
Weblate Admin
5219d7ab2c Translated using Weblate (French)
Currently translated at 100.0% (18 of 18 strings)

Translation: OpenMPTCProuter/LuCI/applications/mlvpn
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmlvpn/fr/
2022-02-19 09:07:28 +00:00
Weblate Admin
b43aa89c61 Translated using Weblate (French)
Currently translated at 100.0% (21 of 21 strings)

Translation: OpenMPTCProuter/LuCI/applications/glorytun-tcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/glorytun-tcp/fr/
2022-02-19 09:07:28 +00:00
Weblate Admin
1daa1f897c Translated using Weblate (French)
Currently translated at 100.0% (12 of 12 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-quota
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-quota/fr/
2022-02-19 09:07:28 +00:00
Weblate Admin
d82263d5ca Translated using Weblate (French)
Currently translated at 100.0% (34 of 34 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-dscp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-dscp/fr/
2022-02-19 09:07:27 +00:00
Weblate Admin
70cbf743f0 Translated using Weblate (French)
Currently translated at 100.0% (23 of 23 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-bypass
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-bypass/fr/
2022-02-19 09:07:27 +00:00
Weblate Admin
b1648820cd Translated using Weblate (French)
Currently translated at 100.0% (54 of 54 strings)

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/fr/
2022-02-19 09:07:27 +00:00
Weblate Admin
caac50e2e5 Translated using Weblate (French)
Currently translated at 100.0% (20 of 20 strings)

Translation: OpenMPTCProuter/LuCI/applications/iperf
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsiperf/fr/
2022-02-19 09:07:27 +00:00
Weblate Admin
694505d82f Translated using Weblate (French)
Currently translated at 100.0% (287 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/fr/
2022-02-19 09:07:27 +00:00
Riccardo Tornesello
7c12984389 Translated using Weblate (Italian)
Currently translated at 16.1% (5 of 31 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-tracker
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-tracker/it/
2022-02-19 09:07:27 +00:00
antrouter
68b7d0f6d5 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (287 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/zh_Hans/
2022-02-19 09:07:27 +00:00
Weblate Admin
1b3fc8b4a2 Translated using Weblate (French)
Currently translated at 100.0% (287 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/fr/
2022-02-19 09:07:27 +00:00
Ycarus (Yannick Chabanois)
275c61de50 Fix stupid error for ipv6 2022-02-18 14:10:45 +01:00
Ycarus (Yannick Chabanois)
cb7c547b00 Redirect error for sysupgrade 2022-02-18 08:29:08 +01:00
Ycarus (Yannick Chabanois)
5d38d60559 Add Multipath version support 2022-02-18 08:28:39 +01:00
Ycarus (Yannick Chabanois)
03802f5b47 Use listvalue for protocol/services in omr-bypass 2022-02-17 13:21:36 +01:00
Ycarus (Yannick Chabanois)
57108e1660 Fix set mac address 2022-02-15 20:47:28 +01:00
Ycarus (Yannick Chabanois)
0395613d5f Fix macvlan 2022-02-15 20:47:08 +01:00
Ycarus (Yannick Chabanois)
cd38c1a7e8 Fix ifname to device in wizard 2022-02-15 20:46:46 +01:00
Ycarus (Yannick Chabanois)
57e413c334 Fix script, keep device 2022-02-13 10:55:18 +01:00
Ycarus (Yannick Chabanois)
a3131ab8b0 Update ndpi-netfilter2 and add host to bypass only if not already here 2022-02-11 12:07:14 +01:00
Ycarus (Yannick Chabanois)
1bcfffa392 Add and remove logs on omr-tracker 2022-02-11 12:06:41 +01:00
Ycarus (Yannick Chabanois)
095a7b0b51 Update iperf3 to 3.11 2022-02-10 20:37:29 +01:00
Ycarus (Yannick Chabanois)
43865452a5 Check var exist on omr-tracker 2022-02-09 20:38:43 +01:00
Ycarus (Yannick Chabanois)
95ea617630 Fix configuration for 5.15 2022-02-09 20:29:41 +01:00
Ycarus (Yannick Chabanois)
1699147b92 More check on post tracking 2022-02-09 20:29:21 +01:00
Ycarus (Yannick Chabanois)
26585702ba Update ModemManager 2022-02-09 20:29:04 +01:00
Ycarus (Yannick Chabanois)
6a0fa5b88c Use latest iproute2 package for MPTCP upstream 2022-02-07 22:11:52 +01:00
Ycarus (Yannick Chabanois)
fa07ce7e73 Use speedtestc++ instead of speedtestc 2022-02-04 22:26:10 +01:00
Ycarus (Yannick Chabanois)
0b7ee45a1a Force token reset if not working on status 2022-02-04 22:25:38 +01:00
Ycarus (Yannick Chabanois)
e0ec6cbd3d More server for speed test 2022-02-04 20:45:15 +01:00
Ycarus (Yannick Chabanois)
58fcea225f More anonymous config 2022-02-04 20:44:41 +01:00
Ycarus (Yannick Chabanois)
2597f7783b Remove new line for ping 2022-02-03 19:55:31 +01:00
Ycarus (Yannick Chabanois)
779ad66f3c Add missing var 2022-02-03 19:54:39 +01:00
Ycarus (Yannick Chabanois)
4c0649109d Fix MPTCP display 2022-02-02 21:27:45 +01:00
Ycarus (Yannick Chabanois)
5a64d743d1 Fix DNS config 2022-02-02 20:31:31 +01:00
Ycarus (Yannick Chabanois)
a12f74df7f Fix MPTCP for 5.15 2022-02-02 20:24:00 +01:00
Ycarus (Yannick Chabanois)
fb32c87a74 Fix ipv6 error 2022-02-02 19:57:59 +01:00
Ycarus (Yannick Chabanois)
8e9389f476 Fix merge 2022-01-31 08:33:43 +01:00
Ycarus (Yannick Chabanois)
e74f092816 Add mptcpd as default package 2022-01-29 16:58:52 +01:00
Ycarus (Yannick Chabanois)
536eadc629 add command to remove some log for modemmanager when using upstream version 2022-01-28 10:44:19 +01:00
Ycarus (Yannick Chabanois)
a241e1e9c9 Set script executable 2022-01-28 10:43:33 +01:00
Ycarus (Yannick Chabanois)
098a498124 Fix and MPTCP config reload when public ip change 2022-01-27 21:02:09 +01:00
Ycarus (Yannick Chabanois)
cc4512766e Fix workaround for some 2.5G card 2022-01-21 20:22:16 +01:00
Ycarus (Yannick Chabanois)
d2e7ac0176 Add some log to modemmanager 2022-01-21 20:21:43 +01:00
Ycarus (Yannick Chabanois)
be962ec5e7 Don't set master as default gateway here 2022-01-21 20:11:09 +01:00
Ycarus (Yannick Chabanois)
68ed55b7ed Fix DHCP 2022-01-18 12:15:27 +01:00
Ycarus (Yannick Chabanois)
5816d407a5 Add modemmanager dependencies 2022-01-16 17:21:50 +01:00
Ycarus (Yannick Chabanois)
03c20f58c6 Check if a server exist 2022-01-15 09:00:24 +01:00
Ycarus (Yannick Chabanois)
9a01c5a68f Fix modemmanager package 2022-01-15 09:00:04 +01:00
Ycarus (Yannick Chabanois)
3ca89cfd48 Update modemmanager 2022-01-14 17:31:58 +01:00
Ycarus (Yannick Chabanois)
232890376e Disable some SQM logs 2022-01-14 09:02:46 +01:00
Ycarus (Yannick Chabanois)
571d37e147 Changes on netifd and modemmanager to use the defaultroute setting 2022-01-14 09:01:39 +01:00
Ycarus (Yannick Chabanois)
90e0c41dc6 Fix default for http server test 2022-01-13 19:46:01 +01:00
Ycarus (Yannick Chabanois)
41087ba6f9 Disable httping test by default 2022-01-13 14:34:14 +01:00
Ycarus (Yannick Chabanois)
e7f09b2b4c Make IPv6 address and gateway optional in wizard 2022-01-13 14:33:46 +01:00
Ycarus (Yannick Chabanois)
5140d59e8c Fixes on post-tracking 2022-01-12 18:23:34 +01:00
Ycarus (Yannick Chabanois)
d8850437c3 Set Force TTL as optional 2022-01-12 18:23:15 +01:00
Ycarus (Yannick Chabanois)
e7d53854bb Fix glorytun-udp issue when path is back 2022-01-12 09:22:33 +01:00
Ycarus (Yannick Chabanois)
eca6a66cf6 Disable sysctl error 2022-01-11 11:11:49 +01:00
Ycarus (Yannick Chabanois)
6f43402777 Remove luci-proto-manager, not needed 2022-01-06 15:35:21 +01:00
Ycarus (Yannick Chabanois)
6e94306e93 Fix on setting some routes 2022-01-05 08:50:44 +01:00
Ycarus (Yannick Chabanois)
791a0643aa Add luci-proto-modemmanager 2022-01-04 09:06:13 +01:00
Ycarus (Yannick Chabanois)
4a33826a28 Add r8125 driver 2022-01-04 09:05:50 +01:00
Ycarus (Yannick Chabanois)
d9b5b9991c Line break 2022-01-03 20:25:25 +01:00
Ycarus (Yannick Chabanois)
46efae0eab Fix for wrt update 2021-12-26 18:41:29 +01:00
Ycarus (Yannick Chabanois)
6725ab4c45 Remove some false errors 2021-12-26 18:41:14 +01:00
Ycarus (Yannick Chabanois)
63457ef662 Get IPv6 when not static 2021-12-20 20:34:02 +01:00
Ycarus (Yannick Chabanois)
278baea272 Little changes on mptcp v6 routes 2021-12-20 19:41:28 +01:00
Ycarus (Yannick Chabanois)
54d696e593 Fix compilation using GO 2021-12-16 21:27:49 +01:00
Ycarus (Yannick Chabanois)
38927997e2 Update go 2021-12-11 08:42:35 +01:00
Ycarus (Yannick Chabanois)
aa159e62e4 Fix when host have more than 10 cores 2021-12-10 21:17:13 +01:00
Ycarus (Yannick Chabanois)
0ab2a14842 Fix set route too often 2021-12-10 21:16:48 +01:00
Ycarus (Yannick Chabanois)
0121c6c4ce Add more log and small changes 2021-12-06 19:36:33 +01:00
Ycarus (Yannick Chabanois)
2e6ddfb810 Compile for 5.15 2021-11-30 17:45:43 +01:00
Ycarus (Yannick Chabanois)
a64df3c074 Increase log in post-tracking 2021-11-30 17:45:26 +01:00
Ycarus (Yannick Chabanois)
7b1f07935b Make sure ip doesn't have subnet 2021-11-30 17:45:08 +01:00
Ycarus (Yannick Chabanois)
e9a628fae5 Remove iptables-mod-fullconenat that doesn't compile with 5.15 for now 2021-11-30 17:44:33 +01:00
Ycarus (Yannick Chabanois)
20e8dce69f Enable SQM by default on interfaces 2021-11-30 17:43:47 +01:00
Ycarus (Yannick Chabanois)
caab49cc26 Remove r8152 driver 2021-11-26 19:37:56 +01:00
Ycarus (Yannick Chabanois)
308bbb5b34 Update v2ray URL 2021-11-26 19:36:58 +01:00
Ycarus (Yannick Chabanois)
734f9dd8c2 Update relatek drivers 2021-11-18 16:24:16 +01:00
Ycarus (Yannick Chabanois)
bf11c19bb4 Update RPI4 firmware 2021-11-18 08:30:39 +01:00
Ycarus (Yannick Chabanois)
0f938d5080 Update mlvpn 2021-11-12 18:37:31 +01:00
Ycarus (Yannick Chabanois)
e21bc3cfb0 Update v2ray 2021-11-12 18:37:16 +01:00
Ycarus (Yannick Chabanois)
1012645314 Update golang 2021-11-12 18:36:56 +01:00
Ycarus (Yannick Chabanois)
267430215c Remove mc fork 2021-11-11 09:05:52 +01:00
Ycarus (Yannick Chabanois)
a48b6d333a Doesn't try to set firewall if VPS problem 2021-11-08 20:15:42 +01:00
Ycarus (Yannick Chabanois)
6f200e37dd Fix network file 2021-11-01 10:35:20 +01:00
Ycarus (Yannick Chabanois)
f7179d5455 Dirty script to always mount FS as RW 2021-10-22 15:34:45 +02:00
Ycarus (Yannick Chabanois)
c5889009cb Add MPTCP IPV6 kernel setting 2021-10-18 19:32:31 +02:00
Ycarus (Yannick Chabanois)
015e660b0e Try to set network config for r7800 2021-10-17 19:12:23 +02:00
Ycarus (Yannick Chabanois)
9b5f1cc351 Use OpenSSL instead of WolfSSL 2021-10-12 19:56:53 +02:00
Ycarus (Yannick Chabanois)
18d100f508 Should fix omr-quota 2021-10-12 19:56:19 +02:00
Ycarus (Yannick Chabanois)
a42b89fce1 Add Netgear R7800 to build 2021-10-07 12:39:28 +02:00
Ycarus (Yannick Chabanois)
66428bd6bc Fix typo 2021-09-28 17:50:55 +02:00
Ycarus (Yannick Chabanois)
45596a198e Fix both kernel compile with github actions 2021-09-28 17:11:26 +02:00
Ycarus (Yannick Chabanois)
053cb2da1e Compile for 5.4 and 5.14 kernel 2021-09-28 15:11:52 +02:00
Ycarus (Yannick Chabanois)
c5d47067f6 Set shortcut-fe as disabled by default 2021-09-28 15:09:58 +02:00
Ycarus (Yannick Chabanois)
c52826cf6e Add igbvf support 2021-09-27 17:47:30 +02:00
Ycarus (Yannick Chabanois)
d5cac96482 Remove again modemmanager and libqmi/libmbim 2021-09-27 13:03:55 +02:00
Ycarus (Yannick Chabanois)
e57423f46d Update libqmi 2021-09-27 08:14:37 +02:00
Ycarus (Yannick Chabanois)
c05b31e993 Update libmbim 2021-09-27 08:14:15 +02:00
Ycarus (Yannick Chabanois)
49f0589209 Use Modemmanager 1.18.0 2021-09-27 08:11:59 +02:00
Ycarus (Yannick Chabanois)
89f76f19aa Revert "Remove momdemmanager"
This reverts commit 48dcdfa417.
2021-09-27 08:10:26 +02:00
Ycarus (Yannick Chabanois)
48dcdfa417 Remove momdemmanager 2021-09-26 22:14:49 +02:00
Ycarus (Yannick Chabanois)
2266e72ae1 Remove umbim 2021-09-26 19:15:08 +02:00
Ycarus (Yannick Chabanois)
e1a07ddc5f Update modemmanager 2021-09-26 19:14:39 +02:00
Ycarus (Yannick Chabanois)
770583c8c0 Remove not needed patche 2021-09-25 16:45:08 +02:00
Ycarus (Yannick Chabanois)
a7e581c4de Update tracebox and fix compilation with gcc 11 2021-09-25 10:36:37 +02:00
Ycarus (Yannick Chabanois)
0460b9dc5b Update cryptodev 2021-09-25 08:59:10 +02:00
Ycarus (Yannick Chabanois)
32cbaf2c1c Remove not needed mlvpn patch 2021-09-25 08:42:08 +02:00
Ycarus (Yannick Chabanois)
63b58f3f76 Update MLVPN 2021-09-25 07:21:54 +02:00
Ycarus (Yannick Chabanois)
527197973f Set ecn to 2 2021-09-24 21:08:57 +02:00
Ycarus (Yannick Chabanois)
9011578db9 Fix legend on multipath bandwidth graph 2021-09-24 21:08:43 +02:00
Ycarus (Yannick Chabanois)
86d725b868 Update xtables-addons 2021-09-24 21:08:05 +02:00
Ycarus (Yannick Chabanois)
6ff98da550 Update speedtestc 2021-09-24 21:07:39 +02:00
Ycarus (Yannick Chabanois)
63e3df3bec Disable cache of pages 2021-09-15 20:21:26 +02:00
Ycarus (Yannick Chabanois)
ed0132f807 Disable httping test in status page 2021-09-15 20:21:08 +02:00
Ycarus (Yannick Chabanois)
ac2c51ff13 Use latest shadowsocks-libev fork 2021-09-14 09:46:07 +02:00
Ycarus (Yannick Chabanois)
30752f970a Fix issue on GRE tunnel creation 2021-09-14 09:45:45 +02:00
Ycarus (Yannick Chabanois)
33c697447a adb not installed by default anymore 2021-09-14 09:45:22 +02:00
Ycarus (Yannick Chabanois)
d4c66ce49a Fix DSVPN port 2021-09-14 09:44:57 +02:00
Ycarus (Yannick Chabanois)
478f9274c3 Try to fix compilation patch for bpi-r2 2021-09-03 12:58:22 +02:00
Ycarus (Yannick Chabanois)
1121b870ee Only set mptcp defaults when needed 2021-09-02 19:53:25 +02:00
Ycarus (Yannick Chabanois)
fb3a2958ba Use OpenMPTCProuter Shadowsocks fork 2021-09-02 19:52:33 +02:00
Ycarus (Yannick Chabanois)
3389d09c23 Add MPTCP upstream support to MPTCP support detection 2021-09-02 19:51:18 +02:00
Ycarus (Yannick Chabanois)
16dd1b400f Add check fs on each partition 2021-09-02 19:50:29 +02:00
Ycarus (Yannick Chabanois)
9719abac16 Fix error on dashboard when no data 2021-08-30 21:51:28 +02:00
Ycarus (Yannick Chabanois)
d2d21d7d68 Add MPTCP upstream support 2021-08-30 21:51:02 +02:00
Ycarus (Yannick Chabanois)
f7db294857 Add TTL setting support 2021-08-30 21:48:23 +02:00
Ycarus (Yannick Chabanois)
93b673395b Add ttl parameter 2021-08-30 21:47:24 +02:00
Ycarus (Yannick Chabanois)
b0e3417205 Add timeout on block lan fw 2021-08-30 21:46:52 +02:00
Ycarus (Yannick Chabanois)
8ec66fc304 little var syntax change 2021-08-30 21:46:18 +02:00
Ycarus (Yannick Chabanois)
806bc40980 Add ttl setting support 2021-08-30 21:35:27 +02:00
Ycarus (Yannick Chabanois)
ac8c81718b Downgrade libqmi 2021-08-22 23:45:03 +02:00
Ycarus (Yannick Chabanois)
57948ddd03 Downgrade libmbim 2021-08-22 22:38:50 +02:00
Ycarus (Yannick Chabanois)
6318eb9181 Update modemmanager 2021-08-19 14:35:24 +02:00
Ycarus (Yannick Chabanois)
4c745f76a1 Update libqmi 2021-08-19 14:35:03 +02:00
Ycarus (Yannick Chabanois)
79d39b06b9 Update libmbim 2021-08-19 14:34:52 +02:00
Ycarus (Yannick Chabanois)
d71f338f40 Fix omr-test-speed 2021-08-12 14:51:07 +02:00
Ycarus (Yannick Chabanois)
df77ebad4b Fix glorytun-udp default conf 2021-08-10 14:08:57 +02:00
Ycarus (Yannick Chabanois)
898f2f5cad Support upstream MPTCP 2021-08-07 18:36:30 +02:00
Ycarus (Yannick Chabanois)
e3a936117f Update multipath for upstream MPTCP with fullmesh support 2021-08-07 18:36:01 +02:00
Ycarus (Yannick Chabanois)
61f781aa5d Better way to use UCI device, still need some work 2021-08-01 08:28:11 +02:00
Ycarus (Yannick Chabanois)
356ae6494f Update libqmi 2021-07-30 20:22:41 +02:00
Ycarus (Yannick Chabanois)
9a264e50ef Fix default device creation 2021-07-30 20:22:28 +02:00
Ycarus (Yannick Chabanois)
3d37fa3d07 Fix mtu support 2021-07-30 20:21:47 +02:00
Ycarus (Yannick Chabanois)
02d18da7bb Create device via wizard, need more work 2021-07-30 20:21:24 +02:00
Ycarus (Yannick Chabanois)
950644e56a Increase iperf3 package release 2021-07-30 12:46:17 +02:00
Ycarus (Yannick Chabanois)
a7bfd7cac7 Fix for IPv6 fw 2021-07-29 09:26:07 +02:00
Ycarus (Yannick Chabanois)
7a549a6628 Set country default for wifi 2021-07-29 09:24:11 +02:00
Ycarus (Yannick Chabanois)
397d89b87f Make multipath script work for kernel upstream MPTCP 2021-07-29 09:22:49 +02:00
Ycarus (Yannick Chabanois)
cbbbea76ac Fix mptcp init script 2021-07-19 19:35:31 +02:00
Ycarus (Yannick Chabanois)
180b5a02cd Fix omr-tracker defaults settings 2021-07-19 19:34:00 +02:00
Ycarus (Yannick Chabanois)
55995713e3 Remove DNSSEC on dnsmasq 2021-07-19 19:33:38 +02:00
Ycarus (Yannick Chabanois)
24a55685e1 Fix defaults settings 2021-07-19 19:32:38 +02:00
Ycarus (Yannick Chabanois)
f45d3eec96 Remove ovh as test site 2021-07-16 13:05:39 +02:00
Ycarus (Yannick Chabanois)
f7136422ca Fix wifi 2021-07-12 18:06:41 +02:00
Ycarus (Yannick Chabanois)
c6d6552d76 Restart dnsmasq by omr-bypass only if needed 2021-07-12 18:06:01 +02:00
Ycarus (Yannick Chabanois)
f557cb0080 Fix dashboard error 2021-07-10 18:58:57 +02:00
Ycarus (Yannick Chabanois)
bc498724ff Fix get device 2021-07-10 15:38:16 +02:00
Ycarus (Yannick Chabanois)
ae8371b2cc Always use device in priority 2021-07-09 18:40:16 +02:00
Ycarus (Yannick Chabanois)
8aa3927d7c doesn't add mac for vlan 2021-07-09 18:26:51 +02:00
Ycarus (Yannick Chabanois)
276acb2db6 Keep mac for vlan 2021-07-09 18:26:30 +02:00
Ycarus (Yannick Chabanois)
50462b9980 No error of same mac for vlan in status page 2021-07-07 12:15:40 +02:00
Ycarus (Yannick Chabanois)
1cafd546c4 doesn't add mac for vlan 2021-07-07 12:15:16 +02:00
Ycarus (Yannick Chabanois)
aa2dbb8c74 Keep mac for vlan 2021-07-07 12:14:50 +02:00
Ycarus (Yannick Chabanois)
a275eedf45 Update mptcpd 2021-07-07 12:14:09 +02:00
Ycarus (Yannick Chabanois)
c40aad6baf Add omr6in4 in vpn firewall zone 2021-07-04 07:21:22 +02:00
Ycarus (Yannick Chabanois)
18a6613650 Use network_get_device to get device 2021-07-04 07:20:55 +02:00
Ycarus (Yannick Chabanois)
ec6cdb8209 Fix modem device 2021-06-28 19:32:36 +02:00
Ycarus (Yannick Chabanois)
7e183cfc07 Remove modemmanger custom release 2021-06-28 19:29:07 +02:00
Ycarus (Yannick Chabanois)
65dc14592d Use device instead of ifname for mptcp 2021-06-27 19:44:17 +02:00
Ycarus (Yannick Chabanois)
0383e51b29 Fix typo 2021-06-26 08:26:01 +02:00
Ycarus (Yannick Chabanois)
2a6d5b341c Fix some firewall warnings 2021-06-26 08:15:14 +02:00
Ycarus (Yannick Chabanois)
ea3a4840c4 Update openmptcprouter script and config to use device setting instead of ifname 2021-06-25 19:48:43 +02:00
Ycarus (Yannick Chabanois)
c5945ec683 Remove the need of macvlan package 2021-06-25 19:47:18 +02:00
Ycarus (Yannick Chabanois)
a65e032215 Update MPTCP init and interface tracking for device setting 2021-06-25 19:46:51 +02:00
Ycarus (Yannick Chabanois)
b7db6b215f Update mlvpn config file to use device setting 2021-06-25 19:45:45 +02:00
Ycarus (Yannick Chabanois)
94f2c90ad4 Update luci-mod-network to upstream and add multipath and latency support 2021-06-25 19:45:23 +02:00
Ycarus (Yannick Chabanois)
490133cea7 Fix dashboard error 2021-06-25 19:43:45 +02:00
Ycarus (Yannick Chabanois)
72f5756eb5 Change in luci-app-openmptcprouter to use device setting 2021-06-25 19:42:03 +02:00
Ycarus (Yannick Chabanois)
04b15901fa Change luci glorytun interface to use device instead of ifname uci setting 2021-06-25 19:40:55 +02:00
Ycarus (Yannick Chabanois)
1f15378d56 Change VPN to use device instead of ifname 2021-06-25 19:39:19 +02:00
Ycarus (Yannick Chabanois)
dd16ae03f5 Add iperf3 with patch to fix compilation issue 2021-06-24 17:12:12 +02:00
Ycarus (Yannick Chabanois)
78334e3385 Fix shadowsocks dependencie 2021-06-24 17:11:41 +02:00
Ycarus (Yannick Chabanois)
1afd649652 Add parameter to help with cache 2021-06-24 17:11:08 +02:00
Ycarus (Yannick Chabanois)
c804cd3b8f Update https-dns-proxy 2021-06-24 17:10:35 +02:00
Ycarus (Yannick Chabanois)
189aaa9d30 Fix firewall issue when source IP specified 2021-06-20 07:17:33 +02:00
Ycarus (Yannick Chabanois)
825f04dc57 Fix block lan fw 2021-06-18 20:13:59 +02:00
Ycarus (Yannick Chabanois)
11f868ed12 Download the right image based on FS and EFI 2021-06-17 21:18:01 +02:00
Ycarus (Yannick Chabanois)
257bf7fce8 Merge branch 'develop' of github.com:Ysurac/openmptcprouter-feeds into develop 2021-06-17 17:23:56 +02:00
Ycarus (Yannick Chabanois)
961f99e2f1
Merge pull request #50 from openmptcprouter-translation/weblate-omr-luciapplicationsopenmptcprouter
Translations update from Weblate
2021-06-17 17:23:44 +02:00
Dmitry Galenko
6fb2fdff2b Translated using Weblate (Russian)
Currently translated at 100.0% (12 of 12 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-quota
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-quota/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
810538bfca Translated using Weblate (Russian)
Currently translated at 100.0% (50 of 50 strings)

Translation: OpenMPTCProuter/LuCI/mod/dashboard
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/lucimoddashboard/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
78ca037a67 Translated using Weblate (Russian)
Currently translated at 100.0% (6 of 6 strings)

Translation: OpenMPTCProuter/LuCI/applications/shutdown
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsshutdown/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
821243d9fc Translated using Weblate (Russian)
Currently translated at 100.0% (19 of 19 strings)

Translation: OpenMPTCProuter/LuCI/applications/sysupgrade
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationssysupgrade/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
9a5dffdd0c Translated using Weblate (Russian)
Currently translated at 100.0% (23 of 23 strings)

Translation: OpenMPTCProuter/LuCI/applications/omr-bypass
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-bypass/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
b42314075d Translated using Weblate (Russian)
Currently translated at 100.0% (54 of 54 strings)

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
8c69490265 Translated using Weblate (Russian)
Currently translated at 100.0% (20 of 20 strings)

Translation: OpenMPTCProuter/LuCI/applications/iperf
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsiperf/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
f9af006454 Translated using Weblate (Russian)
Currently translated at 100.0% (24 of 24 strings)

Translation: OpenMPTCProuter/LuCI/applications/glorytun-udp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsglorytun-udp/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
35c95c9cb0 Translated using Weblate (Russian)
Currently translated at 100.0% (21 of 21 strings)

Translation: OpenMPTCProuter/LuCI/applications/glorytun-tcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/glorytun-tcp/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
f7274d413b Translated using Weblate (Russian)
Currently translated at 100.0% (14 of 14 strings)

Translation: OpenMPTCProuter/LuCI/applications/dsvpn
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsdsvpn/ru/
2021-06-17 15:03:54 +00:00
Dmitry Galenko
c58823f97f Added translation using Weblate (Russian) 2021-06-17 15:03:54 +00:00
Dmitry Galenko
a63f73ff64 Added translation using Weblate (Russian) 2021-06-17 15:03:54 +00:00
Dmitry Galenko
474e841ebd Added translation using Weblate (Russian) 2021-06-17 15:03:54 +00:00
Dmitry Galenko
c427e5bdfc Added translation using Weblate (Russian) 2021-06-17 15:03:54 +00:00
antrouter
6d613c6540 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (50 of 50 strings)

Translation: OpenMPTCProuter/LuCI/mod/dashboard
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/lucimoddashboard/zh_Hans/
2021-06-17 15:03:54 +00:00
antrouter
ffe69c259e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (54 of 54 strings)

Translation: OpenMPTCProuter/LuCI/applications/mptcp
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/zh_Hans/
2021-06-17 15:03:54 +00:00
antrouter
09b1493fd2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (287 of 287 strings)

Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter
Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/zh_Hans/
2021-06-17 15:03:54 +00:00
antrouter
90f4ed16b6 Added translation using Weblate (Chinese (Simplified)) 2021-06-17 15:03:54 +00:00
Ycarus (Yannick Chabanois)
8ef84d7f83 Add blocklanfw file 2021-06-17 17:02:34 +02:00
Ycarus (Yannick Chabanois)
5e058118c8 Fix block from lan 2021-06-17 12:30:16 +02:00
Ycarus (Yannick Chabanois)
240076b993 Fix UDP over Shadowsocks 2021-06-16 18:27:35 +02:00
Ycarus (Yannick Chabanois)
62b10c6735 Doesn't remove shadowsocks UDP if manually enabled 2021-06-16 17:28:37 +02:00
Ycarus (Yannick Chabanois)
812148dedb Add IPv6 prefix settings back in network conf 2021-06-15 17:14:10 +02:00
Ycarus (Yannick Chabanois)
5896616ad5 Try to fix config update when importing old config 2021-06-14 19:52:20 +02:00
Ycarus (Yannick Chabanois)
a8e0c0642e Fix LAN block workaround on v2ray 2021-06-13 20:15:49 +02:00
Ycarus (Yannick Chabanois)
ca61391279 LAN FW block workaround only on TCP for shadowsocks 2021-06-10 21:22:34 +02:00
Ycarus (Yannick Chabanois)
395f8b75b8 Increase max orphans 2021-06-09 18:22:27 +02:00
Ycarus (Yannick Chabanois)
7b9537a9c2 Add Marvell/Aqtion/Aqantia AQC107/108 10Gbps ethernet driver 2021-06-09 18:21:40 +02:00
Ycarus (Yannick Chabanois)
ba300f7196 Add dirty workaround for reject/block lan forward when proxy enabled 2021-06-07 19:22:11 +02:00
Ycarus (Yannick Chabanois)
60fa1ac259 Add domains needed for amazonvideo bypass 2021-06-04 19:58:55 +02:00
Ycarus (Yannick Chabanois)
ac1054f079 Only set nego on interface at 2.5Gbs 2021-06-04 12:35:57 +02:00
Ycarus (Yannick Chabanois)
b69d694cc7 Check latency even if gw down 2021-06-04 12:35:26 +02:00
Ycarus (Yannick Chabanois)
87122788ec Restart interface using modemmanager only if up 2021-06-03 18:11:41 +02:00
Ycarus (Yannick Chabanois)
fe39304aad Fix multiples IPs after reboot 2021-06-03 16:46:30 +02:00
Ycarus (Yannick Chabanois)
f2b918f19e Only set nego on for rtl8156 2021-06-03 16:46:06 +02:00
924 changed files with 190069 additions and 65865 deletions

View file

@ -1,751 +1,99 @@
version: 2
version: 2.1
commands:
set_environment_vars:
steps:
- run:
command: |
echo "export REPO_URL=https://github.com/ysurac/openmptcprouter" >> $BASH_ENV
jobs:
prepare:
machine:
image: ubuntu-1604:201903-01
working_directory: ~/
steps:
- run:
name: Prepare
command: |
sudo rm -rf /var/lib/apt/lists/lock
sudo apt-get update
sudo rm -rf /var/lib/apt/lists/lock
sudo apt-get install -yq build-essential git unzip ncurses-dev libz-dev libssl-dev python subversion gettext gawk wget curl rsync perl libelf-dev python3.5 libpython3.5-stdlib liblzma-dev
pyenv global 3.5.2
build_x86_64:
machine:
image: ubuntu-1604:201903-01
build:
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: x86_64
- OMR_KERNEL: 5.4
working_directory: ~/
REPO_URL: https://github.com/ysurac/openmptcprouter
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
OMR_FEED_URL: https://github.com/ysurac/openmptcprouter-feeds
OMR_TARGET: << parameters.OMR_TARGET >>
OMR_KERNEL: << parameters.OMR_KERNEL >>
OMR_HOST: ${{ secrets.OMR_HOST }}
OMR_PORT: ${{ secrets.OMR_PORT }}
SOURCE_BRANCH: ${{ steps.branch_name.outputs.SOURCE_BRANCH }}
SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }}
ARGS: -av --delete-after
TARGET: deploy/release/${{steps.branch_name.outputs.SOURCE_TAG}}/${{matrix.OMR_TARGET}}
SOURCE: ${{ steps.branch_name.outputs.SOURCE_NAME }}
KEY: ${{ secrets.PRIVATE_KEY }}
USER: deploy
HOST: ${{ secrets.OMR_DEPLOY_HOST }}
PORT: ${{ secrets.OMR_DEPLOY_PORT }}
docker:
- image: dkrecruseastamazonawscom/circlecigolangpr:current
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 50m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
sudo apt-get update
sudo apt-get install -yq libelf-dev
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 50m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_x86:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: x86
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_rpi3:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: rpi3
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_espressobin:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: espressobin
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_r2s:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: r2s
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_rpi4:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: rpi4
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_rpi2:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: rpi2
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile package/compile target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_bpi-r2:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: bpi-r2
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: |
sudo apt-get update
sudo apt-get -yq install swig2.0
make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_wrt3200acm:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_TARGET: wrt3200acm
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
build_wrt32:
machine:
image: ubuntu-1604:201903-01
environment:
- OMR_VERSION: $CIRCLE_TAG
- OMR_KERNEL: 5.4
working_directory: ~/
steps:
- run:
name: cache
command: |
echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target
echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version
- restore_cache:
keys:
- cache-{{ checksum "/tmp/cache-version" }}
- cache-{{ checksum "/tmp/cache-target" }}
- run:
name: Build toolchain wrt3200acm
no_output_timeout: 40m
command: |
git clone https://github.com/ysurac/openmptcprouter || true
cd openmptcprouter
git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true
git pull || true
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_TARGET="wrt3200acm"
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/wrt3200acm/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/wrt3200acm/source/key-build.pub
- save_cache:
key: cache-{{ checksum "/tmp/cache-target" }}
paths:
- openmptcprouter
- run:
name: Build wrt3200acm
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/wrt3200acm/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy wrt3200acm
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/wrt3200acm/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/wrt3200acm
rm -rf ~/openmptcprouter/wrt3200acm/source/bin
- save_cache:
key: cache-{{ checksum "/tmp/cache-version" }}
paths:
- openmptcprouter
- run:
name: Build toolchain wrt32x
no_output_timeout: 40m
command: |
cd ~/openmptcprouter/
export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL"
export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}"
export OMR_TARGET="wrt32x"
ln -s wrt3200acm wrt32x
pyenv global 3.5.2
sh build.sh prepare {tools,toolchain}/install -j2
echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/wrt32x/source/key-build
echo -e "$OMR_PUBKEY" > ~/openmptcprouter/wrt32x/source/key-build.pub
- run:
name: Build wrt32x
no_output_timeout: 40m
command: make IGNORE_ERRORS=m -C ~/openmptcprouter/wrt32x/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2
- run:
name: Deploy wrt32x
command: |
ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET
rsync -av --delete-after ~/openmptcprouter/wrt32x/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/wrt32x
- checkout
- set_environment_vars
- run:
command: |
echo "SOURCE_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
echo "SOURCE_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
echo "SOURCE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
echo "WORKSPACE=${GITHUB_WORKSPACE}" >> $GITHUB_OUTPUT
- run:
name: Prepare
command: |
sudo apt-get update
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext
git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc-s1 libc6-dev-i386
subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev
texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake
libtool autopoint device-tree-compiler python3-pyelftools
- run:
name: Free disk space
command: |
df -h
sudo swapoff -a >/dev/null 2>&1 || true
sudo rm -f /swapfile >/dev/null 2>&1 || true
sudo apt-get autoremove -y >/dev/null 2>&1 || true
sudo apt-get autoclean -y >/dev/null 2>&1 || true
sudo rm -rf "/usr/local/share/boost" >/dev/null 2>&1 || true
sudo rm -rf "$AGENT_TOOLSDIRECTORY" >/dev/null 2>&1 || true
sudo rm -rf /usr/share/dotnet >/dev/null 2>&1 || true
sudo rm -rf /usr/local/lib/android >/dev/null 2>&1 || true
sudo rm -rf /opt/ghc >/dev/null 2>&1 || true
sudo docker rmi $(docker images -qf "dangling=true") >/dev/null 2>&1 ||
true
df -h
- run:
command: |
git clone $REPO_URL omr
if [ "$SOURCE_NAME" != "develop" ]; then
cd omr
pwd
git fetch
git checkout master
else
cd omr
git checkout develop
fi
git pull
pwd
OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare
{tools,toolchain}/install -j$(nproc) || OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}"
sh build.sh prepare {tools,toolchain}/install -j1 V=s
make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index}
-j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index}
-j1 V=s
make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j$(nproc)
|| make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install
-j1 V=s
mv ${OMR_TARGET}/${OMR_KERNEL}/source/bin ${GITHUB_WORKSPACE}/
- store_artifacts:
path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/${{ matrix.OMR_KERNEL
}}/source/bin
workflows:
version: 2
main:
openmptcprouter:
jobs:
- prepare:
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_x86_64:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_x86:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_rpi4:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_rpi3:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_espressobin:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_r2s:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_rpi2:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_bpi-r2:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build_wrt32:
requires:
- prepare
filters:
tags:
only: /.*/
branches:
only:
- develop
- build:
matrix:
parameters:
OMR_TARGET: ["bpi-r1","bpi-r2","bpi-r64","rpi2","rpi4","wrt32x","espressobin","r2s","rpi3","wrt3200acm","x86","x86_64","ubnt-erx","r4s","r7800","rutx12","rutx50","r5s","qnap-301w","rpi5","z8102ax_128m"]
OMR_KERNEL: ["5.4","6.1","6.6"]

View file

@ -3,13 +3,13 @@ on: [push]
env:
REPO_URL: 'https://github.com/ysurac/openmptcprouter'
OMR_KERNEL: '5.4'
jobs:
build:
strategy:
matrix:
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s]
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r3, bpi-r4, bpi-r4-poe, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s, r7800, rutx12, rutx50, r5s, qnap-301w, rpi5, z8102ax_128m, z8102ax_64m, z8102ax-emmc, gl-mt6000, gl-mt3000, gl-mt2500, r5c, z8109ax_128m]
OMR_KERNEL: [6.6, 6.12]
runs-on: ubuntu-latest
continue-on-error: true
@ -17,14 +17,18 @@ jobs:
- name: Branch name
id: branch_name
run: |
echo ::set-output name=SOURCE_NAME::${GITHUB_REF#refs/*/}
echo ::set-output name=SOURCE_BRANCH::${GITHUB_REF#refs/heads/}
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
echo ::set-output name=WORKSPACE::${GITHUB_WORKSPACE}
echo "SOURCE_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
echo "SOURCE_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
echo "SOURCE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
echo "WORKSPACE=${GITHUB_WORKSPACE}" >> $GITHUB_OUTPUT
- name: Prepare
run: |
sudo apt-get update
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc-s1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler python3-pyelftools llvm clang
- if: matrix.OMR_KERNEL == '6.6'
name: Install LLVM
run: |
sudo apt-get install llvm clang
- name: Free disk space
run: |
df -h
@ -34,6 +38,9 @@ jobs:
sudo apt-get autoclean -y >/dev/null 2>&1 || true
sudo rm -rf "/usr/local/share/boost" >/dev/null 2>&1 || true
sudo rm -rf "$AGENT_TOOLSDIRECTORY" >/dev/null 2>&1 || true
sudo rm -rf /usr/share/dotnet >/dev/null 2>&1 || true
sudo rm -rf /usr/local/lib/android >/dev/null 2>&1 || true
sudo rm -rf /opt/ghc >/dev/null 2>&1 || true
sudo docker rmi $(docker images -qf "dangling=true") >/dev/null 2>&1 || true
df -h
- name: Clone source code
@ -61,29 +68,33 @@ jobs:
OMR_FEED_URL: https://github.com/ysurac/openmptcprouter-feeds
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
OMR_TARGET: ${{ matrix.OMR_TARGET }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
OMR_HOST: ${{ secrets.OMR_HOST }}
OMR_PORT: ${{ secrets.OMR_PORT }}
run: |
OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j$(nproc) || OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j1 V=s
#echo -e "${{ secrets.OMR_PRIVKEY }}" > $OMR_TARGET/source/key-build
#echo -e "${{ secrets.OMR_PUBKEY }}" > $OMR_TARGET/source/key-build.pub
OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j$(nproc) || OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j1 V=s
#echo -e "${{ secrets.OMR_PRIVKEY }}" > $OMR_TARGET/$OMR_KERNEL/source/key-build
#echo -e "${{ secrets.OMR_PUBKEY }}" > $OMR_TARGET/$OMR_KERNEL/source/key-build.pub
- name: Build packages
working-directory: ../../omr
env:
OMR_TARGET: ${{ matrix.OMR_TARGET }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
run: |
make IGNORE_ERRORS=m -C $OMR_TARGET/source package/{compile,install,index} -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/source package/{compile,install,index} -j1 V=s
make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index} -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index} -j1 V=s
- name: Build image
working-directory: ../../omr
env:
OMR_TARGET: ${{ matrix.OMR_TARGET }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
run: |
make IGNORE_ERRORS=m -C $OMR_TARGET/source target/install -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/source target/install -j1 V=s
make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j1 V=s
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.OMR_TARGET }}
path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/source/bin
path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/${{ matrix.OMR_KERNEL }}/source/bin
overwrite: true
- if: steps.branch_name.outputs.SOURCE_BRANCH == ''
name: Deploy - Create directory
uses: ysurac/ssh-action@master
@ -108,7 +119,7 @@ jobs:
SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }}
with:
command: |
mkdir -p deploy/${{env.SOURCE_BRANCH}}/${{env.OMR_KERNEL}}/${{matrix.OMR_TARGET}}
mkdir -p deploy/${{env.SOURCE_BRANCH}}/${{matrix.OMR_KERNEL}}/${{matrix.OMR_TARGET}}
host: ${{ secrets.OMR_DEPLOY_HOST }}
user: deploy
port: ${{ secrets.OMR_DEPLOY_PORT }}
@ -118,9 +129,10 @@ jobs:
working-directory: ../../omr
env:
OMR_TARGET: ${{ matrix.OMR_TARGET }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
run: |
mv ${OMR_TARGET}/source/bin ${GITHUB_WORKSPACE}/
mv ${OMR_TARGET}/${OMR_KERNEL}/source/bin ${GITHUB_WORKSPACE}/
- if: steps.branch_name.outputs.SOURCE_BRANCH == ''
name: Deploy - Upload via rsync
uses: ysurac/action-rsync@master
@ -141,7 +153,7 @@ jobs:
uses: ysurac/action-rsync@master
env:
ARGS: -av --delete-after
TARGET: deploy/${{ steps.branch_name.outputs.SOURCE_BRANCH }}/${{env.OMR_KERNEL}}/${{matrix.OMR_TARGET}}
TARGET: deploy/${{ steps.branch_name.outputs.SOURCE_BRANCH }}/${{matrix.OMR_KERNEL}}/${{matrix.OMR_TARGET}}
SOURCE: ./bin/
KEY: ${{ secrets.PRIVATE_KEY }}
USER: deploy

57
atinout/Makefile Normal file
View file

@ -0,0 +1,57 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=atinout
PKG_VERSION=0.9.1
PKG_MAINTAINER:=Konstantine Shevlakov <shevlakov@132lan.ru>
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/beralt/atinout.git
PKG_SOURCE_VERSION:=4013e8db4cd140c1df24bb90f929efeb9b61b238
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Telephony
TITLE:=Send AT commands to a modem
URL:=http://atinout.sourceforge.net/
MAINTAINER:=Adrian Guenter <a@gntr.me>
endef
define Package/$(PKG_NAME)/description
Atinout is a program that will execute AT commands in sequence and
capture the response from the modem.
endef
CONFIGURE_VARS += \
CC="$(TARGET_CC)" \
CXX="$(TARGET_CC) +.c++" \
CFLAGS="$(TARGET_CFLAGS) -Wall -DVERSION=\"\\\"$(PKG_VERSION)\\\"\"" \
LDFLAGS="$(TARGET_LDFLAGS)"
define Build/Configure
$(call Build/Configure/Default,--with-linux-headers=$(LINUX_DIR))
endef
define Build/Compile
@echo -e "\n=== Build/Compile ==="
$(CONFIGURE_VARS) $(MAKE) -C $(PKG_BUILD_DIR) \
all \
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/$(PKG_NAME)
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View file

@ -1,12 +1,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=bcm27xx-eeprom
PKG_VERSION:=2fec47bd7f981c9cb21b0fb3fdd4fe07f23f9e3b
PKG_RELEASE:=4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/raspberrypi/rpi-eeprom/tar.gz/$(PKG_VERSION)?
PKG_HASH:=f54c26ec399801dee7d3d0cc0e969c28878b6f42c982e166c863edb91d2d2a21
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/raspberrypi/rpi-eeprom
PKG_SOURCE_DATE:=2024-09-23
PKG_SOURCE_VERSION:=c8fffcda5ae0f923857a73fedbeb07e81d2eb813
PKG_MIRROR_HASH:=68d0eedd1aff573c2ea7071f89a5898292061ced96d7f98ea4a347dc16c8102c
PKG_LICENSE:=BSD-3-Clause Custom
PKG_LICENSE_FILES:=LICENSE
@ -18,15 +19,39 @@ include $(INCLUDE_DIR)/package.mk
TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS)
TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
define Package/bcm27xx-eeprom
define Package/bcm27xx-eeprom/Default
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=bcm27xx-userland +blkid +pciutils +python3-light +coreutils +coreutils-od
endef
define Package/bcm27xx-eeprom
$(call Package/bcm27xx-eeprom/Default)
TITLE:=BCM27xx EEPROM tools
DEPENDS:=bcm27xx-utils +blkid +coreutils +coreutils-od +mount-utils +pciutils +python3-light
endef
define Package/bcm2711-eeprom
$(call Package/bcm27xx-eeprom/Default)
TITLE:=BCM2711 EEPROM tools
DEPENDS:=+bcm27xx-eeprom
endef
define Package/bcm2712-eeprom
$(call Package/bcm27xx-eeprom/Default)
TITLE:=BCM2712 EEPROM tools
DEPENDS:=+bcm27xx-eeprom
endef
define Package/bcm27xx-eeprom/description
BCM27xx EEPROM tools.
BCM27xx EEPROM config and update tools.
endef
define Package/bcm2711-eeprom/description
BCM2711 EEPROM config and update tools.
endef
define Package/bcm2712-eeprom/description
BCM2712 EEPROM config and update tools.
endef
define Build/Compile
@ -43,16 +68,29 @@ define Package/bcm27xx-eeprom/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-config $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-digest $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rpi-eeprom-update $(1)/usr/bin
endef
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader
$(CP) $(PKG_BUILD_DIR)/firmware/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader
define Package/bcm2711-eeprom/install
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2711/latest
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader/critical
$(CP) $(PKG_BUILD_DIR)/firmware/critical/ $(1)/lib/firmware/raspberrypi/bootloader/
$(CP) $(PKG_BUILD_DIR)/firmware-2711/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader-2711
$(CP) $(PKG_BUILD_DIR)/firmware-2711/latest/pieeprom-2024-09-05.bin $(1)/lib/firmware/raspberrypi/bootloader-2711/latest
$(CP) $(PKG_BUILD_DIR)/firmware-2711/latest/recovery.bin $(1)/lib/firmware/raspberrypi/bootloader-2711/latest
$(CP) $(PKG_BUILD_DIR)/firmware-2711/latest/vl805-000138c0.bin $(1)/lib/firmware/raspberrypi/bootloader-2711/latest
endef
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader/stable
$(CP) $(PKG_BUILD_DIR)/firmware/stable/ $(1)/lib/firmware/raspberrypi/bootloader/
define Package/bcm2712-eeprom/install
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712
$(INSTALL_DIR) $(1)/lib/firmware/raspberrypi/bootloader-2712/latest
$(CP) $(PKG_BUILD_DIR)/firmware-2712/release-notes.md $(1)/lib/firmware/raspberrypi/bootloader-2712
$(CP) $(PKG_BUILD_DIR)/firmware-2712/latest/pieeprom-2024-09-23.bin $(1)/lib/firmware/raspberrypi/bootloader-2712/latest
$(CP) $(PKG_BUILD_DIR)/firmware-2712/latest/recovery.bin $(1)/lib/firmware/raspberrypi/bootloader-2712/latest
endef
$(eval $(call BuildPackage,bcm27xx-eeprom))
$(eval $(call BuildPackage,bcm2711-eeprom))
$(eval $(call BuildPackage,bcm2712-eeprom))

View file

@ -1,4 +1,4 @@
From da37f7b051fe6833e25e78184cc9217dd4379187 Mon Sep 17 00:00:00 2001
From a7c4e8f246dc58b4c83293b11f6443528065dc70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Mon, 23 Mar 2020 10:10:55 +0100
Subject: [PATCH] rpi-eeprom-update: OpenWrt defaults
@ -8,44 +8,30 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
rpi-eeprom-update | 6 +++---
rpi-eeprom-update-default | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
rpi-eeprom-update | 4 ++--
rpi-eeprom-update-default | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
--- a/rpi-eeprom-update
+++ b/rpi-eeprom-update
@@ -24,17 +24,17 @@ else
fi
@@ -25,7 +25,7 @@ fi
# Selects the release sub-directory
-FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-default}
+FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-stable}
FIRMWARE_IMAGE_DIR=${FIRMWARE_IMAGE_DIR:-${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}}
FIRMWARE_RELEASE_STATUS=${FIRMWARE_RELEASE_STATUS:-default}
-FIRMWARE_BACKUP_DIR=${FIRMWARE_BACKUP_DIR:-/var/lib/raspberrypi/bootloader/backup}
+FIRMWARE_BACKUP_DIR=${FIRMWARE_BACKUP_DIR:-${FIRMWARE_ROOT}/backup}
ENABLE_VL805_UPDATES=${ENABLE_VL805_UPDATES:-1}
RECOVERY_BIN=${RECOVERY_BIN:-${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}/recovery.bin}
BOOTFS=${BOOTFS:-/boot}
-VCMAILBOX=${VCMAILBOX:-/opt/vc/bin/vcmailbox}
+VCMAILBOX=${VCMAILBOX:-/usr/bin/vcmailbox}
CM4_ENABLE_RPI_EEPROM_UPDATE=${CM4_ENABLE_RPI_EEPROM_UPDATE:-0}
RPI_EEPROM_UPDATE_CONFIG_TOOL="${RPI_EEPROM_UPDATE_CONFIG_TOOL:-raspi-config}"
DT_BOOTLOADER_TS=${DT_BOOTLOADER_TS:-/proc/device-tree/chosen/bootloader/build-timestamp}
EXIT_SUCCESS=0
EXIT_UPDATE_REQUIRED=1
--- a/rpi-eeprom-update-default
+++ b/rpi-eeprom-update-default
@@ -1,8 +1,9 @@
@@ -1,7 +1,7 @@
FIRMWARE_ROOT=/lib/firmware/raspberrypi/bootloader
-FIRMWARE_RELEASE_STATUS="critical"
+FIRMWARE_RELEASE_STATUS="stable"
FIRMWARE_IMAGE_DIR="${FIRMWARE_ROOT}/${FIRMWARE_RELEASE_STATUS}"
-FIRMWARE_RELEASE_STATUS="default"
-FIRMWARE_BACKUP_DIR="/var/lib/raspberrypi/bootloader/backup"
+FIRMWARE_RELEASE_STATUS="latest"
+FIRMWARE_BACKUP_DIR="${FIRMWARE_ROOT}/backup"
BOOTFS=/boot
USE_FLASHROM=0
EEPROM_CONFIG_HOOK=
+VCMAILBOX=/usr/bin/vcmailbox
# BOOTFS can be set here to override auto-detection in rpi-eeprom-update

View file

@ -0,0 +1,62 @@
From fc552b1e5c503c530763e40d2b83df55c5c2e9a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Wed, 25 Mar 2020 20:58:35 +0100
Subject: [PATCH] rpi-eeprom-update: change default include path
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
rpi-eeprom-update | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/rpi-eeprom-update
+++ b/rpi-eeprom-update
@@ -6,8 +6,8 @@ set -e
script_dir=$(cd "$(dirname "$0")" && pwd)
-if [ -f /etc/default/rpi-eeprom-update ]; then
- . /etc/default/rpi-eeprom-update
+if [ -f /etc/bcm27xx-eeprom.conf ]; then
+ . /etc/bcm27xx-eeprom.conf
fi
LOCAL_MODE=0
@@ -439,7 +439,7 @@ checkDependencies() {
echo "Run with -h for more information."
echo
echo "To enable flashrom programming of the EEPROM"
- echo "Add these the following entries to /etc/default/rpi-eeprom-update"
+ echo "Add these the following entries to /etc/bcm27xx-eeprom.conf"
echo "RPI_EEPROM_USE_FLASHROM=1"
echo "CM4_ENABLE_RPI_EEPROM_UPDATE=1"
echo
@@ -526,7 +526,7 @@ The system should then boot normally.
If /boot does not correspond to the boot partition and this
is not a NOOBS system, then the mount point for BOOTFS should be defined
-in /etc/default/rpi-eeprom-update by defining the BOOTFS variable.
+in /etc/bcm27xx-eeprom.conf by defining the BOOTFS variable.
A backup of the current EEPROM config file is written to ${FIRMWARE_BACKUP_DIR}
before applying the update.
@@ -558,7 +558,7 @@ Options:
-u Install the specified VL805 (USB EEPROM) image file.
Environment:
-Environment variables should be defined in /etc/default/rpi-eeprom-update
+Environment variables should be defined in /etc/bcm27xx-eeprom.conf
EEPROM_CONFIG_HOOK
@@ -630,7 +630,7 @@ must first be enabled by removing ENABLE
via usbboot.
After enabling self-update set the CM4_ENABLE_RPI_EEPROM_UPDATE=1 environment
-variable or define it in /etc/default/rpi-eeprom-update.
+variable or define it in /etc/bcm27xx-eeprom.conf.
N.B. If there is a power failure during SELF_UPDATE the EEPROM write may fail and
usbboot must be used to flash the bootloader EEPROM. SELF_UPDATE is not recommended

View file

@ -1,26 +0,0 @@
From 6674d49dea0104031b3f54df4c7a356dc4307bb2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Wed, 25 Mar 2020 20:58:35 +0100
Subject: [PATCH] rpi-eeprom-update: change default include path
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
rpi-eeprom-update | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/rpi-eeprom-update
+++ b/rpi-eeprom-update
@@ -6,8 +6,8 @@ set -e
script_dir=$(cd "$(dirname "$0")" && pwd)
-if [ -f /etc/default/rpi-eeprom-update ]; then
- . /etc/default/rpi-eeprom-update
+if [ -f /etc/bcm27xx-eeprom.conf ]; then
+ . /etc/bcm27xx-eeprom.conf
fi
LOCAL_MODE=0

View file

@ -0,0 +1,33 @@
From 62ec3384358bda60269c131d3880795bc8cdc3ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Fri, 19 Feb 2021 10:54:23 +0100
Subject: [PATCH] rpi-eeprom-update: chmod silent (-f) is not supported
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
rpi-eeprom-update | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/rpi-eeprom-update
+++ b/rpi-eeprom-update
@@ -220,7 +220,7 @@ applyRecoveryUpdate()
|| die "Failed to copy ${TMP_EEPROM_IMAGE} to ${BOOTFS}"
# For NFS mounts ensure that the files are readable to the TFTP user
- chmod -f go+r "${BOOTFS}/pieeprom.upd" "${BOOTFS}/pieeprom.sig" \
+ chmod go+r "${BOOTFS}/pieeprom.upd" "${BOOTFS}/pieeprom.sig" \
|| die "Failed to set permissions on eeprom update files"
fi
@@ -231,7 +231,7 @@ applyRecoveryUpdate()
|| die "Failed to copy ${VL805_UPDATE_IMAGE} to ${BOOTFS}/vl805.bin"
# For NFS mounts ensure that the files are readable to the TFTP user
- chmod -f go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig" \
+ chmod go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig" \
|| die "Failed to set permissions on eeprom update files"
fi

View file

@ -0,0 +1,35 @@
From 8d1e47c956ae10d1146114f7fcd4eb0d33187d08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Tue, 16 Jan 2024 16:25:40 +0100
Subject: [PATCH] rpi-eeprom-config: replace nano with vi as default editor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
rpi-eeprom-config | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/rpi-eeprom-config
+++ b/rpi-eeprom-config
@@ -186,8 +186,8 @@ def edit_config(eeprom=None):
"""
Implements something like 'git commit' for editing EEPROM configs.
"""
- # Default to nano if $EDITOR is not defined.
- editor = 'nano'
+ # Default to vi if $EDITOR is not defined.
+ editor = 'vi'
if 'EDITOR' in os.environ:
editor = os.environ['EDITOR']
@@ -517,7 +517,7 @@ Operating modes:
To cancel the pending update run 'sudo rpi-eeprom-update -r'
- The default text editor is nano and may be overridden by setting the 'EDITOR'
+ The default text editor is vi and may be overridden by setting the 'EDITOR'
environment variable and passing '-E' to 'sudo' to preserve the environment.
6. Signing the bootloader config file.

View file

@ -1,24 +0,0 @@
--- a/rpi-eeprom-update 2020-11-05 21:58:02.247836497 +0100
+++ b/rpi-eeprom-update 2020-11-05 21:58:36.911266307 +0100
@@ -212,8 +212,8 @@
|| die "Failed to copy ${TMP_EEPROM_IMAGE} to ${BOOTFS}"
# For NFS mounts ensure that the files are readable to the TFTP user
- chmod -f go+r "${BOOTFS}/pieeprom.upd" "${BOOTFS}/pieeprom.sig" \
- || die "Failed to set permissions on eeprom update files"
+ #chmod -f go+r "${BOOTFS}/pieeprom.upd" "${BOOTFS}/pieeprom.sig" \
+ # || die "Failed to set permissions on eeprom update files"
fi
if [ -n "${VL805_UPDATE_IMAGE}" ]; then
@@ -224,8 +224,8 @@
|| die "Failed to copy ${VL805_UPDATE_IMAGE} to ${BOOTFS}/vl805.bin"
# For NFS mounts ensure that the files are readable to the TFTP user
- chmod -f go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig" \
- || die "Failed to set permissions on eeprom update files"
+ #chmod -f go+r "${BOOTFS}/vl805.bin" "${BOOTFS}/vl805.sig" \
+ # || die "Failed to set permissions on eeprom update files"
fi
cp -f "${RECOVERY_BIN}" "${BOOTFS}/recovery.bin" \

66
bcm27xx-utils/Makefile Normal file
View file

@ -0,0 +1,66 @@
# SPDX-License-Identifier: GPL-2.0-only
include $(TOPDIR)/rules.mk
PKG_NAME:=bcm27xx-utils
PKG_VERSION:=2024.10.25
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/raspberrypi/utils.git
PKG_SOURCE_VERSION:=6a2a6becebbc38fde34a94386457ac8210f9119b
PKG_MIRROR_HASH:=a775c7ffb9fac2d798ec8e0a4c7707eb7133cbc9c4418a1cf9434f87c42c01bb
PKG_FLAGS:=nonshared
PKG_BUILD_FLAGS:=no-lto
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENCE
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/bcm27xx-utils
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=@TARGET_bcm27xx +libfdt
TITLE:=BCM27xx scripts and simple applications
PROVIDES:=bcm27xx-userland
endef
define Package/bcm27xx-utils/description
BCM27xx scripts and simple applications.
Replaces bcm27xx-userland scripts and applications.
endef
define Package/bcm27xx-utils/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dtmerge $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dtoverlay $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/dtparam $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/eepdump $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/eepflash.sh $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/eepmake $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdtc $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/otpset $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/overlaycheck $(1)/usr/bin
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/bin/overlaycheck_exclusions.txt $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ovmerge $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pinctrl $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/raspinfo $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vcgencmd $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vclog $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vcmailbox $(1)/usr/bin
endef
$(eval $(call BuildPackage,bcm27xx-utils))

View file

@ -0,0 +1,255 @@
From 0db3fb3119eda8c2360454c2a01f84602a879c38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Tue, 16 Jan 2024 15:32:12 +0100
Subject: [PATCH] raspinfo: adapt to OpenWrt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
raspinfo/raspinfo | 186 ++++------------------------------------------
1 file changed, 13 insertions(+), 173 deletions(-)
--- a/raspinfo/raspinfo
+++ b/raspinfo/raspinfo
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# Some of the regex's used in sed
# Catch basic IP6 address "s/\([0-9a-fA-F]\{1,4\}:\)\{7,7\}[0-9a-fA-F]\{1,4\}/y.y.y.y.y.y.y.y/g"
@@ -6,147 +6,6 @@
# IP4 d.d.d.d decimal "s/\([0-9]\{1,3\}\.\)\{3,3\}[0-9]\{1,3\}/x.x.x.x/g"
# mac address "s/\([0-9a-fA-F]\{2,2\}\:\)\{5,5\}[0-9a-fA-F]\{2,2\}/m.m.m.m/g"
-
-display_info_drm() {
- # If running X then can use xrandr, otherwise
- # dump the /sys/class entries for the displays
- if command -v xrandr > /dev/null &&
- DISPLAY=${DISPLAY:-:0} xrandr --listmonitors &>/dev/null;
- then
- echo "Running (F)KMS and X"
- echo
-
- DISPLAY=${DISPLAY:-:0} xrandr --verbose
- else
- echo "Running (F)KMS, console"
- echo
-
- for card in /sys/class/drm/card[0-9]-*;
- do
- echo $card
-
- # if kmsprint isn't installed print basic mode info
- if ! command -v kmsprint > /dev/null; then
- if [ -f $card/modes ];
- then
- cat $card/modes
- else
- echo "No modes found"
- fi
- fi
-
- if [ -f $card/edid ];
- then
- base64 $card/edid
- else
- echo "No EDID found"
- fi
- echo
- done
- fi
-
- # kmsprint is more useful, but not always installed
- echo
- if command -v kmsprint > /dev/null; then
- kmsprint
- echo
- kmsprint -m
- else
- echo "kmsprint is not installed. Install with: sudo apt install kms++-utils"
- fi
-
- echo
-
- # dump the /sys/class entries for the displays
- cardfound=0
- for card in `seq 0 9`;
- do
- if sudo test -f "/sys/kernel/debug/dri/${card}/state";
- then
- for hdmi in 0 1;
- do
- if sudo test -f "/sys/kernel/debug/dri/${card}/hdmi${hdmi}_regs";
- then
- echo "HDMI${hdmi}: $(sudo cat /sys/kernel/debug/dri/$card/hdmi${hdmi}_regs | grep HOTPLUG)"
- fi
- done
- echo
- echo "/sys/kernel/debug/dri/$card/state:"
- sudo cat "/sys/kernel/debug/dri/$card/state"
- echo
- cardfound=1
- fi
- done
- if [ "$cardfound" == "0" ];
- then
- echo "kms state not found"
- fi
- echo
-
-}
-
-display_info_legacy() {
- # Legacy mode
- echo "Running Legacy framebuffer"
- echo
-
- for card in `seq 0 9`;
- do
- F="/dev/fb${card}"
- if test -e $F;
- then
- echo Framebuffer: $F
- fbset -s -fb $F
- fi
- done
-
- disps=`tvservice -l | awk '/Display Number/{print substr($3,1,1)}'`
-
- tmp=$(mktemp)
-
- for display in $disps
- do
- echo
- echo "Display: " $display
-
- tvservice -v $display -s
- tvservice -v $display -n
- tvservice -v $display -m CEA
- tvservice -v $display -m DMT
-
- echo
- tvservice -v $display -d $tmp > /dev/null
- base64 $tmp
- done
-
- rm $tmp
-}
-
-display_info() {
- # Check if we are running a KMS/DRM system
-
- if [ -d "/dev/dri" ];
- then
- display_info_drm
- else
- display_info_legacy
- fi
-}
-
-audio_info() {
- aplay -l
- echo
- aplay -L
- echo
- systemctl --user status pipewire.socket pipewire.service pulseaudio.service pulseaudio.socket
- echo
- if command -v pactl > /dev/null; then
- pactl info
- else
- echo pactl not installed
- fi
-}
-
OUT=raspinfo.txt
rm -f $OUT
@@ -163,8 +22,6 @@ echo
cat /etc/os-release | head -4
echo
-cat /etc/rpi-issue
-echo
uname -a
cat /proc/cpuinfo | tail -3
@@ -190,17 +47,6 @@ echo
cat /proc/swaps
echo
-echo "Package version information"
-echo "---------------------------"
-
-apt-cache policy raspberrypi-ui-mods | head -2
-apt-cache policy raspberrypi-sys-mods | head -2
-apt-cache policy openbox | head -2
-apt-cache policy lxpanel | head -2
-apt-cache policy pcmanfm | head -2
-apt-cache policy rpd-plym-splash | head -2
-
-echo
echo "Networking Information"
echo "----------------------"
echo
@@ -212,21 +58,11 @@ echo "USB Information"
echo "---------------"
echo
-lsusb -t
-
-echo
-echo "Display Information"
-echo "-------------------"
-echo
-
-display_info
-
-echo
-echo "Audio Information"
-echo "-------------------"
-echo
-
-audio_info
+if command -v lsusb > /dev/null; then
+ lsusb -t
+else
+ echo usbutils not installed
+fi
echo
echo "config.txt"
@@ -250,7 +86,7 @@ echo "-----------------"
echo
if command -v pinctrl > /dev/null; then
- sudo pinctrl 2>&1
+ pinctrl 2>&1
elif command -v raspi-gpio > /dev/null; then
raspi-gpio get 2>&1
else
@@ -263,9 +99,9 @@ echo "------------------"
echo
if command -v vcdbg > /dev/null; then
- sudo vcdbg log msg 2>&1
+ vcdbg log msg 2>&1
elif command -v vclog > /dev/null; then
- sudo vclog --msg 2>&1
+ vclog --msg 2>&1
else
echo "vcdbg not found"
fi
@@ -284,5 +120,9 @@ echo
echo "EEPROM"
echo "------"
echo
-sudo rpi-eeprom-update
+if command -v rpi-eeprom-update > /dev/null; then
+ rpi-eeprom-update
+else
+ echo bcm27xx-eeprom not installed
+fi
fi

View file

@ -0,0 +1,11 @@
--- a/pinctrl/pinctrl.c 2024-07-02 14:14:31.113459219 +0200
+++ b/pinctrl/pinctrl.c 2024-07-02 14:14:44.533241981 +0200
@@ -220,7 +220,7 @@
if (!gpio_num_is_valid(gpio))
return 1;
- poll_gpios = reallocarray(poll_gpios, num_poll_gpios + 1,
+ poll_gpios = realloc(poll_gpios, num_poll_gpios + 1 *
sizeof(*poll_gpios));
new_gpio = &poll_gpios[num_poll_gpios];
new_gpio->num = num;

9
contributors/bdaylik.md Normal file
View file

@ -0,0 +1,9 @@
2024-03-22
I hereby agree to the terms of the "OpenMPTCProuter Individual Contributor License Agreement", with MD5 checksum bc827a07eb93611d793ddb7c75083c00.
I furthermore declare that I am authorized and able to make this agreement and sign this declaration.
Signed,
Baris Daylik https://github.com/bdaylik

9
contributors/flesser.md Normal file
View file

@ -0,0 +1,9 @@
2022-05-20
I hereby agree to the terms of the "OpenMPTCProuter Individual Contributor License Agreement", with MD5 checksum bc827a07eb93611d793ddb7c75083c00.
I furthermore declare that I am authorized and able to make this agreement and sign this declaration.
Signed,
Florian Karuhtz https://github.com/flesser

9
contributors/ta264.md Normal file
View file

@ -0,0 +1,9 @@
2022-08-26
I hereby agree to the terms of the "OpenMPTCProuter Individual Contributor License Agreement", with MD5 checksum bc827a07eb93611d793ddb7c75083c00.
I furthermore declare that I am authorized and able to make this agreement and sign this declaration.
Signed,
ta264 https://github.com/ta264

9
contributors/yostyle.md Normal file
View file

@ -0,0 +1,9 @@
2023-05-23
I hereby agree to the terms of the "OpenMPTCProuter Individual Contributor License Agreement", with MD5 checksum bc827a07eb93611d793ddb7c75083c00.
I furthermore declare that I am authorized and able to make this agreement and sign this declaration.
Signed,
Yoan Pintas https://github.com/yostyle

57
cryptodev-linux/Makefile Normal file
View file

@ -0,0 +1,57 @@
#
# Copyright (C) 2014 OpenWrt.org
# Copyright (C) 2023 Yannick Chabanois (Ycarus) for OpenMPTCProuter
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id$
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=cryptodev-linux
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME).git
PKG_SOURCE_VERSION:=277d4574c10bb8e16ab6ab3f38b8e1cb6cd6c678
PKG_VERSION:=1.14.20241010
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Yannick Chabanois <contact@openmptcprouter.com>
include $(INCLUDE_DIR)/package.mk
define KernelPackage/cryptodev
SUBMENU:=Cryptographic API modules
TITLE:=Driver for cryptographic acceleration
URL:=http://cryptodev-linux.org/
DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash
FILES:=$(PKG_BUILD_DIR)/cryptodev.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,50,cryptodev)
MODPARAMS.cryptodev:=cryptodev_verbosity=-1
endef
define KernelPackage/cryptodev/description
This is a driver for that allows to use the Linux kernel supported
hardware ciphers by user-space applications.
endef
define Build/Configure
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
$(KERNEL_MAKE_FLAGS) \
KERNEL_DIR="$(LINUX_DIR)"
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR)/usr/include/crypto
$(CP) $(PKG_BUILD_DIR)/crypto/cryptodev.h $(STAGING_DIR)/usr/include/crypto/
endef
$(eval $(call KernelPackage,cryptodev))

View file

@ -8,11 +8,15 @@
include $(TOPDIR)/rules.mk
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/jedisct1/dsvpn.git
PKG_SOURCE_VERSION:=3b99d2ef6c02b2ef68b5784bec8adfdd55b29b1a
#PKG_SOURCE_URL:=https://github.com/jedisct1/dsvpn.git
PKG_SOURCE_URL:=https://github.com/Ysurac/dsvpn.git
#PKG_SOURCE_VERSION:=3b99d2ef6c02b2ef68b5784bec8adfdd55b29b1a
PKG_SOURCE_VERSION:=4333aa705efd9c86c76809614d20dc5ebf43da7f
PKG_NAME:=dsvpn
PKG_VERSION:=0.1.4-$(PKG_SOURCE_VERSION)
PKG_VERSION:=0.1.5
PKG_RELEASE:=1
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk

View file

@ -29,6 +29,16 @@ validate_section() {
'externalip:string:auto'
}
version_over_5_4() {
MAJOR_VERSION=$(uname -r | awk -F '.' '{print $1}')
MINOR_VERSION=$(uname -r | awk -F '.' '{print $2}' | awk -F '-' '{print $1}')
if [ $MAJOR_VERSION -ge 5 ] && [ $MINOR_VERSION -gt 13 ] || [ $MAJOR_VERSION -gt 5 ] ; then
return 0
else
return 1
fi
}
start_instance() {
local enable key host port dev
@ -49,7 +59,7 @@ start_instance() {
key=""
if [ "$(uci -q get network.omrvpn)" != "" ] && [ "$(uci -q get network.omrvpn)" != "$dev" ]; then
uci -q set network.omrvpn.ifname=$dev
uci -q set network.omrvpn.device=$dev
uci -q commit
fi
@ -58,6 +68,10 @@ start_instance() {
_log "starting ${PROG_NAME} ${1} instance $*"
if version_over_5_4; then
PROG="mptcpize run ${PROG}"
fi
procd_open_instance
procd_set_param command ${PROG} ${mode} \

View file

@ -1,65 +0,0 @@
--- a/src/os.c 2019-12-06 19:49:50.323898270 +0100
+++ b/src/os.c 2019-12-06 19:54:20.987206244 +0100
@@ -445,24 +445,28 @@
#ifdef __linux__
static const char
*set_cmds[] =
- { "sysctl net.ipv4.ip_forward=1",
- "ip addr add $LOCAL_TUN_IP peer $REMOTE_TUN_IP dev $IF_NAME",
+ { "ip addr add $LOCAL_TUN_IP peer $REMOTE_TUN_IP dev $IF_NAME",
"ip -6 addr add $LOCAL_TUN_IP6 peer $REMOTE_TUN_IP6/96 dev $IF_NAME",
"ip link set dev $IF_NAME up",
+#ifndef NO_DEFAULT_FIREWALL
+ "sysctl net.ipv4.ip_forward=1",
"iptables -t raw -I PREROUTING ! -i $IF_NAME -d $LOCAL_TUN_IP -m addrtype ! "
"--src-type LOCAL -j DROP",
"iptables -t nat -A POSTROUTING -o $EXT_IF_NAME -s $REMOTE_TUN_IP -j MASQUERADE",
"iptables -t filter -A FORWARD -i $EXT_IF_NAME -o $IF_NAME -m state --state "
"RELATED,ESTABLISHED -j ACCEPT",
"iptables -t filter -A FORWARD -i $IF_NAME -o $EXT_IF_NAME -j ACCEPT",
+#endif
NULL },
*unset_cmds[] = {
+#ifndef NO_DEFAULT_FIREWALL
"iptables -t nat -D POSTROUTING -o $EXT_IF_NAME -s $REMOTE_TUN_IP -j MASQUERADE",
"iptables -t filter -D FORWARD -i $EXT_IF_NAME -o $IF_NAME -m state --state "
"RELATED,ESTABLISHED -j ACCEPT",
"iptables -t filter -D FORWARD -i $IF_NAME -o $EXT_IF_NAME -j ACCEPT",
"iptables -t raw -D PREROUTING ! -i $IF_NAME -d $LOCAL_TUN_IP -m addrtype ! "
"--src-type LOCAL -j DROP",
+#endif
NULL
};
#elif defined(__APPLE__) || defined(__OpenBSD__) || defined(__FreeBSD__) || \
@@ -503,12 +507,17 @@
#elif defined(__linux__)
static const char
*set_cmds[] =
- { "sysctl net.ipv4.tcp_congestion_control=bbr",
+ {
+#ifndef NO_DEFAULT_CONGESTION
+ "sysctl net.ipv4.tcp_congestion_control=bbr",
+#endif
"ip link set dev $IF_NAME up",
- "iptables -t raw -I PREROUTING ! -i $IF_NAME -d $LOCAL_TUN_IP -m addrtype ! "
- "--src-type LOCAL -j DROP",
"ip addr add $LOCAL_TUN_IP peer $REMOTE_TUN_IP dev $IF_NAME",
"ip -6 addr add $LOCAL_TUN_IP6 peer $REMOTE_TUN_IP6/96 dev $IF_NAME",
+#ifndef NO_DEFAULT_FIREWALL
+ "iptables -t raw -I PREROUTING ! -i $IF_NAME -d $LOCAL_TUN_IP -m addrtype ! "
+ "--src-type LOCAL -j DROP",
+#endif
#ifndef NO_DEFAULT_ROUTES
"ip route add default dev $IF_NAME table 42069",
"ip -6 route add default dev $IF_NAME table 42069",
@@ -525,8 +534,10 @@
"ip rule delete table main suppress_prefixlength 0",
"ip -6 rule delete table main suppress_prefixlength 0",
#endif
+#ifndef NO_DEFAULT_FIREWALL
"iptables -t raw -D PREROUTING ! -i $IF_NAME -d $LOCAL_TUN_IP -m addrtype ! "
"--src-type LOCAL -j DROP",
+#endif
NULL
};
#else

View file

@ -1,48 +1,65 @@
#
# Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
# Permission to use, copy, modify, and/or distribute this software for
# any purpose with or without fee is hereby granted, provided that the
# above copyright notice and this permission notice appear in all copies.
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=fast-classifier
PKG_RELEASE:=1
PKG_CONFIG_DEPENDS := CONFIG_IPV6
PKG_RELEASE:=6
include $(INCLUDE_DIR)/package.mk
define KernelPackage/$(PKG_NAME)/Default
define KernelPackage/fast-classifier/Default
SECTION:=kernel
CATEGORY:=Kernel modules
SUBMENU:=Network Support
DEPENDS:=+kmod-ipt-conntrack +kmod-shortcut-fe
DEPENDS:=@KERNEL_5_4 +kmod-ipt-conntrack +kmod-shortcut-fe
TITLE:=Kernel driver for FAST Classifier
FILES:=$(PKG_BUILD_DIR)/fast-classifier.ko
KCONFIG:=CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y CONFIG_NF_CONNTRACK_MARK=y
PROVIDES:=$(PKG_NAME)
KCONFIG:= \
CONFIG_NF_CONNTRACK_EVENTS=y \
CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y \
CONFIG_NF_CONNTRACK_MARK=y \
CONFIG_XFRM=y
CONFLICTS:=kmod-shortcut-fe-drv kmod-shortcut-fe-cm
endef
define KernelPackage/$(PKG_NAME)
$(call KernelPackage/$(PKG_NAME)/Default)
define KernelPackage/fast-classifier
$(call KernelPackage/fast-classifier/Default)
endef
define KernelPackage/$(PKG_NAME)-noload
$(call KernelPackage/$(PKG_NAME)/Default)
define KernelPackage/fast-classifier-noload
$(call KernelPackage/fast-classifier/Default)
endef
define KernelPackage/$(PKG_NAME)/Default/description
define KernelPackage/fast-classifier/Default/description
FAST Classifier talks to SFE to make decisions about offloading connections
endef
define KernelPackage/$(PKG_NAME)/description
$(call KernelPackage/$(PKG_NAME)/Default/description)
define KernelPackage/fast-classifier/description
$(call KernelPackage/fast-classifier/Default/description)
endef
define KernelPackage/$(PKG_NAME)-noload/description
$(call KernelPackage/$(PKG_NAME)/Default/description)
define KernelPackage/fast-classifier-noload/description
$(call KernelPackage/fast-classifier/Default/description)
This package does not load $(PKG_NAME) at boot by default
This package does not load fast-classifier at boot by default
endef
define Package/fast-classifier-example
TITLE:=Example user space program for fast-classifier
DEPENDS:=+libnl +kmod-fast-classifier
DEPENDS:=@KERNEL_5_4 +libnl +kmod-fast-classifier
endef
define Package/fast-classifier-example/description
@ -50,15 +67,16 @@ Example user space program that communicates with fast
classifier kernel module
endef
SFE_MAKE_OPTS:=SFE_SUPPORT_IPV6=$(if $(CONFIG_IPV6),y,n)
HAVE_ECM:=$(CONFIG_PACKAGE_kmod-qca-nss-ecm-premium)$(CONFIG_PACKAGE_kmod-qca-nss-ecm-noload)$(CONFIG_PACKAGE_kmod-qca-nss-ecm-premium-noload)$(CONFIG_PACKAGE_kmod-qca-nss-ecm-standard)
define Build/Compile/kmod
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" $(SFE_MAKE_OPTS) \
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
$(PKG_MAKE_FLAGS) \
M="$(PKG_BUILD_DIR)" \
CONFIG_FAST_CLASSIFIER=m \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
EXTRA_CFLAGS+="-DSFE_SUPPORT_IPV6" \
$(if $(HAVE_ECM),EXTRA_CFLAGS+="-DCONFIG_SFE_ECM" CONFIG_SFE_ECM=y,) \
modules
endef
@ -81,12 +99,11 @@ define Build/InstallDev
$(CP) $(PKG_BUILD_DIR)/fast-classifier.h $(1)/usr/include/
endef
define Package/fast-classifier-example/install
$(INSTALL_DIR) $(1)/sbin
$(CP) $(PKG_BUILD_DIR)/userspace_fast_classifier $(1)/sbin/
endef
$(eval $(call KernelPackage,$(PKG_NAME)))
$(eval $(call KernelPackage,$(PKG_NAME)-noload))
$(eval $(call KernelPackage,fast-classifier))
#$(eval $(call KernelPackage,fast-classifier-noload))
#$(eval $(call BuildPackage,fast-classifier-example))

View file

@ -36,9 +36,9 @@
#include <linux/hashtable.h>
#include <linux/version.h>
#include "sfe_backport.h"
#include "sfe.h"
#include "sfe_cm.h"
#include <sfe_backport.h>
#include <sfe.h>
#include <sfe_cm.h>
#include "fast-classifier.h"
typedef enum fast_classifier_exception {
@ -451,6 +451,10 @@ static u32 fc_conn_hash(sfe_ip_addr_t *saddr, sfe_ip_addr_t *daddr,
*/
static int fast_classifier_update_protocol(struct sfe_connection_create *p_sic, struct nf_conn *ct)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
struct net *net=NULL ;
struct nf_tcp_net *tn=NULL;
#endif
switch (p_sic->protocol) {
case IPPROTO_TCP:
p_sic->src_td_window_scale = ct->proto.tcp.seen[0].td_scale;
@ -461,8 +465,14 @@ static int fast_classifier_update_protocol(struct sfe_connection_create *p_sic,
p_sic->dest_td_max_window = ct->proto.tcp.seen[1].td_maxwin;
p_sic->dest_td_end = ct->proto.tcp.seen[1].td_end;
p_sic->dest_td_max_end = ct->proto.tcp.seen[1].td_maxend;
if (nf_ct_tcp_no_window_check
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
net = nf_ct_net(ct);
tn = nf_tcp_pernet(net);
if ((tn&&tn->tcp_no_window_check)
#else
if (nf_ct_tcp_no_window_check
#endif
|| (ct->proto.tcp.seen[0].flags & IP_CT_TCP_FLAG_BE_LIBERAL)
|| (ct->proto.tcp.seen[1].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) {
p_sic->flags |= SFE_CREATE_FLAG_NO_SEQ_CHECK;
@ -1744,8 +1754,11 @@ static int __init fast_classifier_init(void)
{
struct fast_classifier *sc = &__sc;
int result = -1;
#ifdef CONFIG_SFE_ECM
int (*fast_recv)(struct sk_buff *skb);
#endif
printk(KERN_ALERT "fast-classifier (PBR safe v2.1.4a): starting up\n");
printk(KERN_ALERT "fast-classifier: starting up\n");
DEBUG_INFO("SFE CM init\n");
hash_init(fc_conn_ht);
@ -1810,6 +1823,7 @@ static int __init fast_classifier_init(void)
goto exit3;
}
#ifdef CONFIG_NF_CONNTRACK_EVENTS
/*
* Register a notifier hook to get fast notifications of expired connections.
*/
@ -1817,12 +1831,14 @@ static int __init fast_classifier_init(void)
result = nf_conntrack_register_chain_notifier(&init_net, &fast_classifier_conntrack_notifier);
#else
result = nf_conntrack_register_notifier(&init_net, &fast_classifier_conntrack_notifier);
#endif
if (result < 0) {
DEBUG_ERROR("can't register nf notifier hook: %d\n", result);
goto exit4;
}
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0))
result = genl_register_family(&fast_classifier_gnl_family);
if (result) {
@ -1865,7 +1881,16 @@ static int __init fast_classifier_init(void)
/*
* Hook the receive path in the network stack.
*/
#ifdef CONFIG_SFE_ECM
rcu_read_lock();
fast_recv = rcu_dereference(athrs_fast_nat_recv);
rcu_read_unlock();
if (!fast_recv) {
BUG_ON(athrs_fast_nat_recv);
}
#else
BUG_ON(athrs_fast_nat_recv);
#endif
RCU_INIT_POINTER(athrs_fast_nat_recv, fast_classifier_recv);
/*
@ -1974,3 +1999,4 @@ module_exit(fast_classifier_exit)
MODULE_DESCRIPTION("Shortcut Forwarding Engine - Connection Manager");
MODULE_LICENSE("Dual BSD/GPL");

View file

@ -1,114 +0,0 @@
/*
* sfe.h
* Shortcut forwarding engine.
*
* Copyright (c) 2013-2017 The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* The following are debug macros used throughout the SFE.
*
* The DEBUG_LEVEL enables the followings based on its value,
* when dynamic debug option is disabled.
*
* 0 = OFF
* 1 = ASSERTS / ERRORS
* 2 = 1 + WARN
* 3 = 2 + INFO
* 4 = 3 + TRACE
*/
#define DEBUG_LEVEL 2
#if (DEBUG_LEVEL < 1)
#define DEBUG_ASSERT(s, ...)
#define DEBUG_ERROR(s, ...)
#else
#define DEBUG_ASSERT(c, s, ...) if (!(c)) { pr_emerg("ASSERT: %s:%d:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__); BUG(); }
#define DEBUG_ERROR(s, ...) pr_err("%s:%d:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#endif
#if defined(CONFIG_DYNAMIC_DEBUG)
/*
* Compile messages for dynamic enable/disable
*/
#define DEBUG_WARN(s, ...) pr_debug("%s[%d]:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define DEBUG_INFO(s, ...) pr_debug("%s[%d]:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define DEBUG_TRACE(s, ...) pr_debug("%s[%d]:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
/*
* Statically compile messages at different levels
*/
#if (DEBUG_LEVEL < 2)
#define DEBUG_WARN(s, ...)
#else
#define DEBUG_WARN(s, ...) pr_warn("%s[%d]:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#endif
#if (DEBUG_LEVEL < 3)
#define DEBUG_INFO(s, ...)
#else
#define DEBUG_INFO(s, ...) pr_notice("%s[%d]:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#endif
#if (DEBUG_LEVEL < 4)
#define DEBUG_TRACE(s, ...)
#else
#define DEBUG_TRACE(s, ...) pr_info("%s[%d]:" s, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#endif
#endif
#ifdef CONFIG_NF_FLOW_COOKIE
typedef int (*flow_cookie_set_func_t)(u32 protocol, __be32 src_ip, __be16 src_port,
__be32 dst_ip, __be16 dst_port, u16 flow_cookie);
/*
* sfe_register_flow_cookie_cb
* register a function in SFE to let SFE use this function to configure flow cookie for a flow
*
* Hardware driver which support flow cookie should register a callback function in SFE. Then SFE
* can use this function to configure flow cookie for a flow.
* return: 0, success; !=0, fail
*/
int sfe_register_flow_cookie_cb(flow_cookie_set_func_t cb);
/*
* sfe_unregister_flow_cookie_cb
* unregister function which is used to configure flow cookie for a flow
*
* return: 0, success; !=0, fail
*/
int sfe_unregister_flow_cookie_cb(flow_cookie_set_func_t cb);
typedef int (*sfe_ipv6_flow_cookie_set_func_t)(u32 protocol, __be32 src_ip[4], __be16 src_port,
__be32 dst_ip[4], __be16 dst_port, u16 flow_cookie);
/*
* sfe_ipv6_register_flow_cookie_cb
* register a function in SFE to let SFE use this function to configure flow cookie for a flow
*
* Hardware driver which support flow cookie should register a callback function in SFE. Then SFE
* can use this function to configure flow cookie for a flow.
* return: 0, success; !=0, fail
*/
int sfe_ipv6_register_flow_cookie_cb(sfe_ipv6_flow_cookie_set_func_t cb);
/*
* sfe_ipv6_unregister_flow_cookie_cb
* unregister function which is used to configure flow cookie for a flow
*
* return: 0, success; !=0, fail
*/
int sfe_ipv6_unregister_flow_cookie_cb(sfe_ipv6_flow_cookie_set_func_t cb);
#endif /*CONFIG_NF_FLOW_COOKIE*/

View file

@ -1,195 +0,0 @@
/*
* sfe_backport.h
* Shortcut forwarding engine compatible header file.
*
* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#include <linux/version.h>
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0))
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0))
#include <net/netfilter/nf_conntrack_timeout.h>
#else
enum udp_conntrack {
UDP_CT_UNREPLIED,
UDP_CT_REPLIED,
UDP_CT_MAX
};
static inline unsigned int *
nf_ct_timeout_lookup(struct net *net, struct nf_conn *ct,
struct nf_conntrack_l4proto *l4proto)
{
#ifdef CONFIG_NF_CONNTRACK_TIMEOUT
struct nf_conn_timeout *timeout_ext;
unsigned int *timeouts;
timeout_ext = nf_ct_timeout_find(ct);
if (timeout_ext)
timeouts = NF_CT_TIMEOUT_EXT_DATA(timeout_ext);
else
timeouts = l4proto->get_timeouts(net);
return timeouts;
#else
return l4proto->get_timeouts(net);
#endif /*CONFIG_NF_CONNTRACK_TIMEOUT*/
}
#endif /*KERNEL_VERSION(3, 7, 0)*/
#endif /*KERNEL_VERSION(3, 4, 0)*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0))
#define sfe_define_post_routing_hook(FN_NAME, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
static unsigned int FN_NAME(void *priv, \
struct sk_buff *SKB, \
const struct nf_hook_state *state)
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0))
#define sfe_define_post_routing_hook(FN_NAME, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
static unsigned int FN_NAME(const struct nf_hook_ops *OPS, \
struct sk_buff *SKB, \
const struct net_device *UNUSED, \
const struct net_device *OUT, \
int (*OKFN)(struct sk_buff *))
#else
#define sfe_define_post_routing_hook(FN_NAME, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
static unsigned int FN_NAME(unsigned int HOOKNUM, \
struct sk_buff *SKB, \
const struct net_device *UNUSED, \
const struct net_device *OUT, \
int (*OKFN)(struct sk_buff *))
#endif
#define sfe_cm_ipv4_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
sfe_define_post_routing_hook(__sfe_cm_ipv4_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN)
#define sfe_cm_ipv6_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
sfe_define_post_routing_hook(__sfe_cm_ipv6_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN)
#define fast_classifier_ipv4_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
sfe_define_post_routing_hook(__fast_classifier_ipv4_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN)
#define fast_classifier_ipv6_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \
sfe_define_post_routing_hook(__fast_classifier_ipv6_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN)
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0))
#define SFE_IPV4_NF_POST_ROUTING_HOOK(fn) \
{ \
.hook = fn, \
.pf = NFPROTO_IPV4, \
.hooknum = NF_INET_POST_ROUTING, \
.priority = NF_IP_PRI_NAT_SRC + 1, \
}
#else
#define SFE_IPV4_NF_POST_ROUTING_HOOK(fn) \
{ \
.hook = fn, \
.owner = THIS_MODULE, \
.pf = NFPROTO_IPV4, \
.hooknum = NF_INET_POST_ROUTING, \
.priority = NF_IP_PRI_NAT_SRC + 1, \
}
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0))
#define SFE_IPV6_NF_POST_ROUTING_HOOK(fn) \
{ \
.hook = fn, \
.pf = NFPROTO_IPV6, \
.hooknum = NF_INET_POST_ROUTING, \
.priority = NF_IP_PRI_NAT_SRC + 1, \
}
#else
#define SFE_IPV6_NF_POST_ROUTING_HOOK(fn) \
{ \
.hook = fn, \
.owner = THIS_MODULE, \
.pf = NFPROTO_IPV6, \
.hooknum = NF_INET_POST_ROUTING, \
.priority = NF_IP6_PRI_NAT_SRC + 1, \
}
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0))
#define SFE_NF_CT_DEFAULT_ZONE (&nf_ct_zone_dflt)
#else
#define SFE_NF_CT_DEFAULT_ZONE NF_CT_DEFAULT_ZONE
#endif
/*
* sfe_dev_get_master
* get master of bridge port, and hold it
*/
static inline struct net_device *sfe_dev_get_master(struct net_device *dev)
{
struct net_device *master;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0))
rcu_read_lock();
master = netdev_master_upper_dev_get_rcu(dev);
if (master)
dev_hold(master);
rcu_read_unlock();
#else
master = dev->master;
if (master)
dev_hold(master);
#endif
return master;
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0))
#define SFE_DEV_EVENT_PTR(PTR) netdev_notifier_info_to_dev(PTR)
#else
#define SFE_DEV_EVENT_PTR(PTR) (struct net_device *)(PTR)
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0))
#define SFE_NF_CONN_ACCT(NM) struct nf_conn_acct *NM
#else
#define SFE_NF_CONN_ACCT(NM) struct nf_conn_counter *NM
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0))
#define SFE_ACCT_COUNTER(NM) ((NM)->counter)
#else
#define SFE_ACCT_COUNTER(NM) (NM)
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0))
#define sfe_hash_for_each_possible(name, obj, node, member, key) \
hash_for_each_possible(name, obj, member, key)
#else
#define sfe_hash_for_each_possible(name, obj, node, member, key) \
hash_for_each_possible(name, obj, node, member, key)
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0))
#define sfe_hash_for_each(name, bkt, node, obj, member) \
hash_for_each(name, bkt, obj, member)
#else
#define sfe_hash_for_each(name, bkt, node, obj, member) \
hash_for_each(name, bkt, node, obj, member)
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0))
#define sfe_dst_get_neighbour(dst, daddr) dst_neigh_lookup(dst, daddr)
#else
static inline struct neighbour *
sfe_dst_get_neighbour(struct dst_entry *dst, void *daddr)
{
struct neighbour *neigh = dst_get_neighbour_noref(dst);
if (neigh)
neigh_hold(neigh);
return neigh;
}
#endif

View file

@ -1,259 +0,0 @@
/*
* sfe_cm.h
* Shortcut forwarding engine.
*
* Copyright (c) 2013-2016 The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* connection flags.
*/
#define SFE_CREATE_FLAG_NO_SEQ_CHECK BIT(0)
/* Indicates that we should not check sequence numbers */
#define SFE_CREATE_FLAG_REMARK_PRIORITY BIT(1)
/* Indicates that we should remark priority of skb */
#define SFE_CREATE_FLAG_REMARK_DSCP BIT(2)
/* Indicates that we should remark DSCP of packet */
/*
* IPv6 address structure
*/
struct sfe_ipv6_addr {
__be32 addr[4];
};
typedef union {
__be32 ip;
struct sfe_ipv6_addr ip6[1];
} sfe_ip_addr_t;
/*
* connection creation structure.
*/
struct sfe_connection_create {
int protocol;
struct net_device *src_dev;
struct net_device *dest_dev;
u32 flags;
u32 src_mtu;
u32 dest_mtu;
sfe_ip_addr_t src_ip;
sfe_ip_addr_t src_ip_xlate;
sfe_ip_addr_t dest_ip;
sfe_ip_addr_t dest_ip_xlate;
__be16 src_port;
__be16 src_port_xlate;
__be16 dest_port;
__be16 dest_port_xlate;
u8 src_mac[ETH_ALEN];
u8 src_mac_xlate[ETH_ALEN];
u8 dest_mac[ETH_ALEN];
u8 dest_mac_xlate[ETH_ALEN];
u8 src_td_window_scale;
u32 src_td_max_window;
u32 src_td_end;
u32 src_td_max_end;
u8 dest_td_window_scale;
u32 dest_td_max_window;
u32 dest_td_end;
u32 dest_td_max_end;
u32 mark;
#ifdef CONFIG_XFRM
u32 original_accel;
u32 reply_accel;
#endif
u32 src_priority;
u32 dest_priority;
u32 src_dscp;
u32 dest_dscp;
};
/*
* connection destruction structure.
*/
struct sfe_connection_destroy {
int protocol;
sfe_ip_addr_t src_ip;
sfe_ip_addr_t dest_ip;
__be16 src_port;
__be16 dest_port;
};
typedef enum sfe_sync_reason {
SFE_SYNC_REASON_STATS, /* Sync is to synchronize stats */
SFE_SYNC_REASON_FLUSH, /* Sync is to flush a entry */
SFE_SYNC_REASON_DESTROY /* Sync is to destroy a entry(requested by connection manager) */
} sfe_sync_reason_t;
/*
* Structure used to sync connection stats/state back within the system.
*
* NOTE: The addresses here are NON-NAT addresses, i.e. the true endpoint addressing.
* 'src' is the creator of the connection.
*/
struct sfe_connection_sync {
struct net_device *src_dev;
struct net_device *dest_dev;
int is_v6; /* Is it for ipv6? */
int protocol; /* IP protocol number (IPPROTO_...) */
sfe_ip_addr_t src_ip; /* Non-NAT source address, i.e. the creator of the connection */
sfe_ip_addr_t src_ip_xlate; /* NATed source address */
__be16 src_port; /* Non-NAT source port */
__be16 src_port_xlate; /* NATed source port */
sfe_ip_addr_t dest_ip; /* Non-NAT destination address, i.e. to whom the connection was created */
sfe_ip_addr_t dest_ip_xlate; /* NATed destination address */
__be16 dest_port; /* Non-NAT destination port */
__be16 dest_port_xlate; /* NATed destination port */
u32 src_td_max_window;
u32 src_td_end;
u32 src_td_max_end;
u64 src_packet_count;
u64 src_byte_count;
u32 src_new_packet_count;
u32 src_new_byte_count;
u32 dest_td_max_window;
u32 dest_td_end;
u32 dest_td_max_end;
u64 dest_packet_count;
u64 dest_byte_count;
u32 dest_new_packet_count;
u32 dest_new_byte_count;
u32 reason; /* reason for stats sync message, i.e. destroy, flush, period sync */
u64 delta_jiffies; /* Time to be added to the current timeout to keep the connection alive */
};
/*
* connection mark structure
*/
struct sfe_connection_mark {
int protocol;
sfe_ip_addr_t src_ip;
sfe_ip_addr_t dest_ip;
__be16 src_port;
__be16 dest_port;
u32 mark;
};
/*
* Expose the hook for the receive processing.
*/
extern int (*athrs_fast_nat_recv)(struct sk_buff *skb);
/*
* Expose what should be a static flag in the TCP connection tracker.
*/
extern int nf_ct_tcp_no_window_check;
/*
* This callback will be called in a timer
* at 100 times per second to sync stats back to
* Linux connection track.
*
* A RCU lock is taken to prevent this callback
* from unregistering.
*/
typedef void (*sfe_sync_rule_callback_t)(struct sfe_connection_sync *);
/*
* IPv4 APIs used by connection manager
*/
int sfe_ipv4_recv(struct net_device *dev, struct sk_buff *skb);
int sfe_ipv4_create_rule(struct sfe_connection_create *sic);
void sfe_ipv4_destroy_rule(struct sfe_connection_destroy *sid);
void sfe_ipv4_destroy_all_rules_for_dev(struct net_device *dev);
void sfe_ipv4_register_sync_rule_callback(sfe_sync_rule_callback_t callback);
void sfe_ipv4_update_rule(struct sfe_connection_create *sic);
void sfe_ipv4_mark_rule(struct sfe_connection_mark *mark);
#ifdef SFE_SUPPORT_IPV6
/*
* IPv6 APIs used by connection manager
*/
int sfe_ipv6_recv(struct net_device *dev, struct sk_buff *skb);
int sfe_ipv6_create_rule(struct sfe_connection_create *sic);
void sfe_ipv6_destroy_rule(struct sfe_connection_destroy *sid);
void sfe_ipv6_destroy_all_rules_for_dev(struct net_device *dev);
void sfe_ipv6_register_sync_rule_callback(sfe_sync_rule_callback_t callback);
void sfe_ipv6_update_rule(struct sfe_connection_create *sic);
void sfe_ipv6_mark_rule(struct sfe_connection_mark *mark);
#else
static inline int sfe_ipv6_recv(struct net_device *dev, struct sk_buff *skb)
{
return 0;
}
static inline int sfe_ipv6_create_rule(struct sfe_connection_create *sic)
{
return 0;
}
static inline void sfe_ipv6_destroy_rule(struct sfe_connection_destroy *sid)
{
return;
}
static inline void sfe_ipv6_destroy_all_rules_for_dev(struct net_device *dev)
{
return;
}
static inline void sfe_ipv6_register_sync_rule_callback(sfe_sync_rule_callback_t callback)
{
return;
}
static inline void sfe_ipv6_update_rule(struct sfe_connection_create *sic)
{
return;
}
static inline void sfe_ipv6_mark_rule(struct sfe_connection_mark *mark)
{
return;
}
#endif
/*
* sfe_ipv6_addr_equal()
* compare ipv6 address
*
* return: 1, equal; 0, no equal
*/
static inline int sfe_ipv6_addr_equal(struct sfe_ipv6_addr *a,
struct sfe_ipv6_addr *b)
{
return a->addr[0] == b->addr[0] &&
a->addr[1] == b->addr[1] &&
a->addr[2] == b->addr[2] &&
a->addr[3] == b->addr[3];
}
/*
* sfe_ipv4_addr_equal()
* compare ipv4 address
*
* return: 1, equal; 0, no equal
*/
#define sfe_ipv4_addr_equal(a, b) ((u32)(a) == (u32)(b))
/*
* sfe_addr_equal()
* compare ipv4 or ipv6 address
*
* return: 1, equal; 0, no equal
*/
static inline int sfe_addr_equal(sfe_ip_addr_t *a,
sfe_ip_addr_t *b, int is_v4)
{
return is_v4 ? sfe_ipv4_addr_equal(a->ip, b->ip) : sfe_ipv6_addr_equal(a->ip6, b->ip6);
}

View file

@ -1,24 +1,26 @@
#
# Copyright (C) 2018 Chion Tang <tech@chionlab.moe>
# Copyright (C) 2022 Chion Tang <tech@chionlab.moe>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=fullconenat
PKG_RELEASE:=1
PKG_RELEASE:=9
PKG_SOURCE_DATE:=2019-10-21
PKG_SOURCE_DATE:=2022-02-13
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/Chion82/netfilter-full-cone-nat.git
PKG_SOURCE_VERSION:=0cf3b48fd7d2fa81d0297d1fff12bbd0580fc435
PKG_SOURCE_URL:=https://github.com/llccd/netfilter-full-cone-nat.git
PKG_SOURCE_VERSION:=108a36cbdca17e68c9e6e7fd5e26156a88f738e8
PKG_MIRROR_HASH:=00d749235271dee194dcd23c22e6e85207ea90192a62a110b2af0b4e4de1971f
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Chion Tang <tech@chionlab.moe>
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
define Package/iptables-mod-fullconenat
@ -26,8 +28,7 @@ define Package/iptables-mod-fullconenat
SECTION:=net
CATEGORY:=Network
TITLE:=FULLCONENAT iptables extension
DEPENDS:=+iptables +kmod-ipt-fullconenat
MAINTAINER:=Chion Tang <tech@chionlab.moe>
DEPENDS:=+iptables +kmod-ipt-fullconenat @LINUX_5_4
endef
define Package/iptables-mod-fullconenat/install
@ -38,28 +39,24 @@ endef
define KernelPackage/ipt-fullconenat
SUBMENU:=Netfilter Extensions
TITLE:=FULLCONENAT netfilter module
DEPENDS:=+kmod-nf-ipt +kmod-nf-nat
MAINTAINER:=Chion Tang <tech@chionlab.moe>
KCONFIG:=CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y
DEPENDS:=+kmod-nf-ipt +kmod-nf-nat @LINUX_5_4
KCONFIG:= \
CONFIG_NF_CONNTRACK_EVENTS=y \
CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y
FILES:=$(PKG_BUILD_DIR)/xt_FULLCONENAT.ko
endef
include $(INCLUDE_DIR)/kernel-defaults.mk
define Build/Prepare
$(call Build/Prepare/Default)
$(CP) ./files/Makefile $(PKG_BUILD_DIR)/
endef
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH="$(LINUX_KARCH)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(BUILDFLAGS)" \
modules
CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH="$(LINUX_KARCH)" \
M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(BUILDFLAGS)" \
modules
$(call Build/Compile/Default)
endef
$(eval $(call BuildPackage,iptables-mod-fullconenat))
$(eval $(call KernelPackage,ipt-fullconenat))
$(eval $(call BuildPackage,iptables-mod-fullconenat))

View file

@ -0,0 +1,20 @@
--- a/libip6t_FULLCONENAT.c
+++ b/libip6t_FULLCONENAT.c
@@ -214,6 +214,7 @@ static struct xtables_target fullconenat_tg_reg = {
.x6_options = FULLCONENAT_opts,
};
+#define _init __attribute__((constructor)) _INIT
void _init(void)
{
xtables_register_target(&fullconenat_tg_reg);
--- a/libipt_FULLCONENAT.c
+++ b/libipt_FULLCONENAT.c
@@ -235,6 +235,7 @@ static struct xtables_target fullconenat_tg_reg = {
.x6_options = FULLCONENAT_opts,
};
+#define _init __attribute__((constructor)) _INIT
void _init(void)
{
xtables_register_target(&fullconenat_tg_reg);

View file

@ -0,0 +1,26 @@
--- a/xt_FULLCONENAT.c
+++ b/xt_FULLCONENAT.c
@@ -325,7 +325,11 @@
/* for now we do the same thing for both --random and --random-fully */
/* select a random starting point */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
+ start = (uint16_t)(get_random_u32() % (u32)range_size);
+#else
start = (uint16_t)(prandom_u32() % (u32)range_size);
+#endif
} else {
if ((original_port >= min && original_port <= min + range_size - 1)
@@ -995,7 +999,11 @@
/* for now we do the same thing for both --random and --random-fully */
/* select a random starting point */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)
+ start = (uint16_t)(get_random_u32() % (u32)range_size);
+#else
start = (uint16_t)(prandom_u32() % (u32)range_size);
+#endif
} else {
if ((original_port >= min && original_port <= min + range_size - 1)

View file

@ -4,4 +4,3 @@ libipt_FULLCONENAT.o: libipt_FULLCONENAT.c
$(CC) ${CFLAGS} -fPIC -D_INIT=$*_init -c -o $@ $<;
obj-m += xt_FULLCONENAT.o

View file

@ -12,8 +12,10 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/angt/glorytun.git
PKG_SOURCE_VERSION:=32267e86a6da05b285bb3bf2b136c105dc0af4bb
PKG_NAME:=glorytun-udp
PKG_VERSION:=0.3.4-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=23
PKG_VERSION:=0.3.4
PKG_RELEASE:=24
PKG_LICENSE:=BSD-2-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_FIXUP:=autoreconf
@ -46,7 +48,7 @@ define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) init $(1)/etc/init.d/$(PKG_NAME)
$(INSTALL_DIR) $(1)/etc/config
touch $(1)/etc/config/glorytun
$(INSTALL_DATA) glorytun-udp.config $(1)/etc/config/glorytun-udp
endef
$(eval $(call BuildPackage,$(PKG_NAME)))

View file

@ -8,3 +8,7 @@ config glorytun-udp 'vpn'
option localip '10.255.254.2'
option remoteip '10.255.254.1'
option mode 'to'
option kxtimeout '7d'
option timetolerance '10m'
option keepalive '25s'
option rateauto '0'

View file

@ -50,12 +50,14 @@ start_instance() {
key=""
if [ "$(uci -q get network.omrvpn)" != "" ]; then
uci -q set network.omrvpn.ifname=$dev
uci -q set network.omrvpn.device=$dev
uci -q commit
fi
_log "starting ${PROG_NAME} ${1} instance $*"
host=$(resolveip $host)
if [ "$mode" = "to" ]; then
bind="bind from addr :: port 5000 to addr $host port $port"
else
@ -79,7 +81,7 @@ start_instance() {
procd_close_instance
tc qdisc replace dev ${dev} root cake
#tc qdisc replace dev ${dev} root cake
#ip link set $dev txqlen 100
#config_load network

View file

@ -9,11 +9,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=glorytun
PKG_VERSION:=0.0.35
PKG_RELEASE:=6
PKG_RELEASE:=8
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=8aebb3efb3b108b1276aa74679e200e003f298de
PKG_SOURCE:=glorytun-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/angt/glorytun/releases/download/v$(PKG_VERSION)
PKG_HASH:=49e4d8ea4ff2990300b37947b0bd0da3c8e0985bc6eddf29f4146306188fff64
PKG_SOURCE_URL:=https://github.com/Ysurac/glorytun.git
PKG_VERSION:=0.0.35
PKG_LICENSE:=BSD-2-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk

View file

@ -11,4 +11,5 @@ config glorytun 'vpn'
option localip '10.255.255.2'
option remoteip '10.255.255.1'
option multiqueue '1'
option label 'Default VPN'
option label 'Default VPN'
option timeout '10000'

View file

@ -59,9 +59,10 @@ start_instance() {
key=""
if [ "$(uci -q get network.omrvpn)" != "" ]; then
uci -q set network.omrvpn.ifname=${dev}
uci -q set network.omrvpn.device=${dev}
uci -q commit network
fi
_log "starting ${PROG_NAME} ${1} instance $*"
procd_open_instance
@ -78,10 +79,10 @@ start_instance() {
[ "${multiqueue}" = "1" ] && procd_append_param command multiqueue
procd_append_param command \
retry count -1 const 500000 \
retry count -1 const 5000000 \
timeout ${timeout} \
keepalive count 5 idle 20 interval 2 \
buffer-size 32768
buffer-size 65536
procd_set_param respawn 0 30 0
procd_set_param file /tmp/${PROG_NAME}-${1}.key

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
# Copyright (C) 2019-2023 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -12,8 +12,8 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/protobuf.git
PKG_SOURCE_VERSION:=347cf4a86c1cb8d262994d8ef5924d4576c5b331
PKG_SOURCE_DATE:=20190109
PKG_SOURCE_VERSION:=5d5e8c018a13017f9d5b8bf4fad64aaa42a87308
PKG_SOURCE_DATE:=20210916
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE

View file

@ -1,4 +1,10 @@
#!/bin/sh
#
# Copyright (C) 2020, 2022 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
nl="
"
@ -56,7 +62,7 @@ configure() {
if [ "$GO_INSTALL_ALL" != 1 ]; then
code="$(printf '%s\n' "$files" | grep '\.\(c\|cc\|cpp\|go\|h\|hh\|hpp\|proto\|s\)$')"
testdata="$(printf '%s\n' "$files" | grep '/testdata/')"
gomod="$(printf '%s\n' "$files" | grep '/go\.\(mod\|sum\)$')"
gomod="$(printf '%s\n' "$files" | grep '/go\.\(mod\|sum\|work\)$')"
for pattern in $GO_INSTALL_EXTRA; do
extra="$(printf '%s\n' "$extra"; printf '%s\n' "$files" | grep -e "$pattern")"
@ -114,7 +120,7 @@ build() {
if [ "$GO_GO_GENERATE" = 1 ]; then
log "Calling go generate"
# shellcheck disable=SC2086
GOOS='' GOARCH='' GO386='' GOARM='' GOMIPS='' GOMIPS64='' \
GOOS='' GOARCH='' GO386='' GOARM='' GOARM64='' GOMIPS='' GOMIPS64='' GORISCV64=''\
go generate -v $targets
log
fi

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2018, 2020 Jeffery To
# Copyright (C) 2018, 2020-2021, 2023 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -19,15 +19,15 @@ define GoCompiler/Default/CheckHost
endef
# $(1) source go root
# $(2) destination prefix
# $(3) go version id
# $(4) additional environment variables (optional)
# $(2) additional environment variables (optional)
define GoCompiler/Default/Make
( \
cd "$(1)/src" ; \
$(if $(2),GOROOT_FINAL="$(2)/lib/go-$(3)") \
$(4) \
$(BASH) make.bash --no-banner ; \
$(2) \
$(BASH) make.bash \
$(if $(findstring s,$(OPENWRT_VERBOSE)),-v) \
--no-banner \
; \
)
endef
@ -57,9 +57,10 @@ define GoCompiler/Default/Install/Bin
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),api)
$(INSTALL_DATA) -p "$(1)/go.env" "$(2)/lib/go-$(3)/"
$(INSTALL_DATA) -p "$(1)/VERSION" "$(2)/lib/go-$(3)/"
for file in AUTHORS CONTRIBUTING.md CONTRIBUTORS LICENSE PATENTS README.md SECURITY.md; do \
for file in CONTRIBUTING.md LICENSE PATENTS README.md SECURITY.md; do \
if [ -f "$(1)/$$$$file" ]; then \
$(INSTALL_DATA) -p "$(1)/$$$$file" "$(2)/share/go-$(3)/" ; \
fi ; \
@ -73,8 +74,10 @@ define GoCompiler/Default/Install/Bin
$(INSTALL_BIN) -p "$(1)/bin/$(4)"/* "$(2)/lib/go-$(3)/bin/"
endif
$(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg"
$(CP) "$(1)/pkg/$(4)$(if $(5),_$(5))" "$(2)/lib/go-$(3)/pkg/"
if [ -d "$(1)/pkg/$(4)$(if $(5),_$(5))" ]; then \
$(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg" ; \
$(CP) "$(1)/pkg/$(4)$(if $(5),_$(5))" "$(2)/lib/go-$(3)/pkg/" ; \
fi
$(INSTALL_DIR) "$(2)/lib/go-$(3)/pkg/tool/$(4)"
$(INSTALL_BIN) -p "$(1)/pkg/tool/$(4)"/* "$(2)/lib/go-$(3)/pkg/tool/$(4)/"
@ -95,8 +98,6 @@ define GoCompiler/Default/Install/Doc
$(call GoCompiler/Default/Install/make-dirs,$(2),$(3))
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),doc)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),favicon.ico)
$(call GoCompiler/Default/Install/install-share-data,$(1),$(2),$(3),robots.txt)
endef
# $(1) source go root
@ -152,7 +153,7 @@ define GoCompiler/AddProfile
# $$(1) additional environment variables (optional)
define GoCompiler/$(1)/Make
$$(call GoCompiler/Default/Make,$(2),$(3),$(4),$$(1))
$$(call GoCompiler/Default/Make,$(2),$$(1))
endef
# $$(1) override install prefix (optional)

View file

@ -1,47 +0,0 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-crypto
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/crypto.git
PKG_SOURCE_VERSION:=4def268fd1a49955bfb3dda92fe3db4f924f2285
PKG_SOURCE_DATE:=20190701
#PKG_MIRROR_HASH:=80b16b203736ac56883d0610edbc5981eb78f15b7b35d11b5ca639f7c3814214
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/crypto
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-crypto-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go supplementary cryptography libraries
URL:=https://godoc.org/golang.org/x/crypto
DEPENDS:=$(GO_ARCH_DEPENDS) \
+golang-golang-x-net-dev \
+golang-golang-x-sys-dev
PKGARCH:=all
endef
define Package/golang-golang-x-crypto-dev/description
Supplementary Go cryptography libraries.
endef
$(eval $(call GoSrcPackage,golang-golang-x-crypto-dev))
$(eval $(call BuildPackage,golang-golang-x-crypto-dev))

View file

@ -1,58 +0,0 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-net
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/net.git
PKG_SOURCE_VERSION:=afe8f62b1d6bbd81f31868121a50b06d8188e1f9
PKG_SOURCE_DATE:=20180620
PKG_MIRROR_HASH:=9a8bb3bf21ea60121d7e87f1bd1af9effbdcd908f758be99457653172d13eb1e
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/net
# exclude http2/h2i to break circular dependency with golang-golang-x-crypto-dev
# since there are no other binaries, can skip compilation
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-net-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go supplementary network libraries
URL:=https://godoc.org/golang.org/x/net
DEPENDS:=$(GO_ARCH_DEPENDS) +golang-golang-x-text-dev
PKGARCH:=all
endef
define Package/golang-golang-x-net-dev/description
Supplementary Go networking libraries.
endef
# http2/testdata/draft-ietf-httpbis-http2.xml is a non-free document
# http2/z_spec_test.go uses http2/testdata/draft-ietf-httpbis-http2.xml
define Package/golang-golang-x-net-dev/install
$(call GoPackage/Package/Install/Src,$(1))
rm -f $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/testdata/draft-ietf-httpbis-http2.xml
rmdir $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/testdata/
rm -f $(1)$(GO_PKG_PATH)/src/$(GO_PKG)/http2/z_spec_test.go
endef
$(eval $(call GoSrcPackage,golang-golang-x-net-dev))
$(eval $(call BuildPackage,golang-golang-x-net-dev))

View file

@ -1,46 +0,0 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-sys
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/sys.git
PKG_SOURCE_VERSION:=63fc586f45fe72d95d5240a5d5eb95e6503907d3
PKG_SOURCE_DATE:=20180621
PKG_MIRROR_HASH:=3afe7936fb9fb291ef9b9cfa88f51576cdc19abbd34240232ce284958ac7dbaf
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/sys
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-sys-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go packages for interaction with the OS
URL:=https://godoc.org/golang.org/x/sys
DEPENDS:=$(GO_ARCH_DEPENDS)
PKGARCH:=all
endef
define Package/golang-golang-x-sys-dev/description
Supplementary Go packages for low-level interactions with the operating
system.
endef
$(eval $(call GoSrcPackage,golang-golang-x-sys-dev))
$(eval $(call BuildPackage,golang-golang-x-sys-dev))

View file

@ -1,47 +0,0 @@
#
# Copyright (C) 2018 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=golang-golang-x-text
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/golang/text.git
PKG_SOURCE_VERSION:=5cec4b58c438bd98288aeb248bab2c1840713d21
PKG_SOURCE_DATE:=20180520
PKG_MIRROR_HASH:=6c541a59f32f57afa54a2216045ddf16a077f8fe2e823fbbe77723eca04ddddb
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
GO_PKG:=golang.org/x/text
# exclude gotext (and message/pipeline) to avoid dependency on golang.org/x/tools
# since there are no other binaries, can skip compilation
GO_PKG_SOURCE_ONLY:=1
include $(INCLUDE_DIR)/package.mk
include ../golang-package.mk
define Package/golang-golang-x-text-dev
$(call GoPackage/GoSubMenu)
TITLE:=Go text processing support
URL:=https://godoc.org/golang.org/x/text
DEPENDS:=$(GO_ARCH_DEPENDS)
PKGARCH:=all
endef
define Package/golang-golang-x-text-dev/description
Supplementary Go libraries for text processing, many involving Unicode.
endef
$(eval $(call GoSrcPackage,golang-golang-x-text-dev))
$(eval $(call BuildPackage,golang-golang-x-text-dev))

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2020 Jeffery To
# Copyright (C) 2020, 2022 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -107,10 +107,10 @@ GO_HOST_CUSTOM_LDFLAGS= \
GO_HOST_INSTALL_ARGS= \
-v \
-ldflags "all=$(GO_HOST_DEFAULT_LDFLAGS)" \
$(if $(filter $(GO_HOST_ENABLE_PIE),1),-buildmode pie) \
$(if $(GO_HOST_GCFLAGS),-gcflags "$(GO_HOST_GCFLAGS)") \
$(if $(GO_HOST_CUSTOM_LDFLAGS),-ldflags "$(GO_HOST_CUSTOM_LDFLAGS) $(GO_HOST_DEFAULT_LDFLAGS)") \
$(if $(GO_HOST_TAGS),-tags "$(GO_HOST_TAGS)")
$(if $(GO_HOST_ENABLE_PIE),-buildmode pie) \
$(if $(strip $(GO_HOST_GCFLAGS)),-gcflags "$(GO_HOST_GCFLAGS)") \
$(if $(strip $(GO_HOST_CUSTOM_LDFLAGS)),-ldflags "$(GO_HOST_CUSTOM_LDFLAGS) $(GO_HOST_DEFAULT_LDFLAGS)") \
$(if $(strip $(GO_HOST_TAGS)),-tags "$(GO_HOST_TAGS)")
define GoHost/Host/Configure
$(GO_GENERAL_BUILD_CONFIG_VARS) \

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2020 Jeffery To
# Copyright (C) 2018-2022 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -32,7 +32,7 @@ include $(GO_INCLUDE_DIR)/golang-values.mk
#
# * Files in any 'testdata' directory
#
# * go.mod and go.sum, in any directory
# * go.mod, go.sum and go.work, in any directory
#
# e.g. GO_PKG_INSTALL_EXTRA:=example.toml marshal_test.toml
#
@ -198,9 +198,11 @@ GO_PKG_TARGET_VARS= \
GOOS="$(GO_OS)" \
GOARCH="$(GO_ARCH)" \
GO386="$(GO_386)" \
GOAMD64="$(GO_AMD64)" \
GOARM="$(GO_ARM)" \
GOMIPS="$(GO_MIPS)" \
GOMIPS64="$(GO_MIPS64)" \
GOPPC64="$(GO_PPC64)" \
CGO_ENABLED=1 \
CC="$(TARGET_CC)" \
CXX="$(TARGET_CXX)" \
@ -213,7 +215,8 @@ GO_PKG_BUILD_VARS= \
GOPATH="$(GO_PKG_BUILD_DIR)" \
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
GOMODCACHE="$(GO_MOD_CACHE_DIR)" \
GOENV=off
GOENV=off \
GOTOOLCHAIN=local
GO_PKG_VARS= \
$(GO_PKG_TARGET_VARS) \
@ -236,17 +239,18 @@ GO_PKG_CUSTOM_LDFLAGS= \
GO_PKG_INSTALL_ARGS= \
-v \
-buildvcs=false \
-trimpath \
-ldflags "all=$(GO_PKG_DEFAULT_LDFLAGS)" \
$(if $(GO_PKG_DEFAULT_GCFLAGS),-gcflags "all=$(GO_PKG_DEFAULT_GCFLAGS)") \
$(if $(GO_PKG_DEFAULT_ASMFLAGS),-asmflags "all=$(GO_PKG_DEFAULT_ASMFLAGS)") \
$(if $(filter $(GO_PKG_ENABLE_PIE),1),-buildmode pie) \
$(if $(strip $(GO_PKG_DEFAULT_GCFLAGS)),-gcflags "all=$(GO_PKG_DEFAULT_GCFLAGS)") \
$(if $(strip $(GO_PKG_DEFAULT_ASMFLAGS)),-asmflags "all=$(GO_PKG_DEFAULT_ASMFLAGS)") \
$(if $(GO_PKG_ENABLE_PIE),-buildmode pie) \
$(if $(filter $(GO_ARCH),arm),-installsuffix "v$(GO_ARM)") \
$(if $(filter $(GO_ARCH),mips mipsle),-installsuffix "$(GO_MIPS)") \
$(if $(filter $(GO_ARCH),mips64 mips64le),-installsuffix "$(GO_MIPS64)") \
$(if $(GO_PKG_GCFLAGS),-gcflags "$(GO_PKG_GCFLAGS) $(GO_PKG_DEFAULT_GCFLAGS)") \
$(if $(GO_PKG_CUSTOM_LDFLAGS),-ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)") \
$(if $(GO_PKG_TAGS),-tags "$(GO_PKG_TAGS)")
$(if $(strip $(GO_PKG_GCFLAGS)),-gcflags "$(GO_PKG_GCFLAGS) $(GO_PKG_DEFAULT_GCFLAGS)") \
$(if $(strip $(GO_PKG_CUSTOM_LDFLAGS)),-ldflags "$(GO_PKG_CUSTOM_LDFLAGS) $(GO_PKG_DEFAULT_LDFLAGS)") \
$(if $(strip $(GO_PKG_TAGS)),-tags "$(GO_PKG_TAGS)")
define GoPackage/Build/Configure
$(GO_GENERAL_BUILD_CONFIG_VARS) \
@ -314,14 +318,3 @@ define GoSrcPackage
Package/$(1)/install=$$(call GoPackage/Package/Install/Src,$$(1))
endif
endef
# Deprecated variables - these will be removed after the next OpenWrt release
GO_PKG_PATH=$(GO_PKG_BUILD_DEPENDS_PATH)
GO_PKG_WORK_DIR=$(PKG_BUILD_DIR)/$(GO_PKG_WORK_DIR_NAME)
GO_PKG_CACHE_DIR=$(GO_BUILD_CACHE_DIR)
GO_PKG_DEFAULT_VARS=$(GO_PKG_VARS)
GoPackage/Environment=$(GO_PKG_VARS)
GoPackage/is_dir_not_empty=$$$$($(FIND) "$(1)" -maxdepth 0 -type d \! -empty 2>/dev/null)
GoPackage/has_binaries=$(call GoPackage/is_dir_not_empty,$(GO_PKG_BUILD_BIN_DIR))
# End of deprecated variables

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2018, 2020 Jeffery To
# Copyright (C) 2018-2023 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -13,10 +13,11 @@ endif
# Unset environment variables
# There are more magic variables to track down, but ain't nobody got time for that
# From https://golang.org/cmd/go/#hdr-Environment_variables
# From https://pkg.go.dev/cmd/go#hdr-Environment_variables
# General-purpose environment variables:
unexport \
GO111MODULE \
GCCGO \
GOARCH \
GOBIN \
@ -28,7 +29,9 @@ unexport \
GOOS \
GOPATH \
GOROOT \
GOTMPDIR
GOTOOLCHAIN \
GOTMPDIR \
GOWORK
# Unmodified:
# GOINSECURE
# GOPRIVATE
@ -36,6 +39,7 @@ unexport \
# GONOPROXY
# GOSUMDB
# GONOSUMDB
# GOVCS
# Environment variables for use with cgo:
unexport \
@ -55,31 +59,37 @@ unexport \
# Architecture-specific environment variables:
unexport \
GOARM \
GOARM64 \
GO386 \
GOAMD64 \
GOMIPS \
GOMIPS64 \
GOPPC64 \
GORISCV64 \
GOWASM
# Environment variables for use with code coverage:
unexport \
GOCOVERDIR
# Special-purpose environment variables:
unexport \
GCCGOTOOLDIR \
GOEXPERIMENT \
GOROOT_FINAL \
GO_EXTLINK_ENABLED
# Unmodified:
# GIT_ALLOW_PROTOCOL
# From https://golang.org/cmd/go/#hdr-Module_support
unexport \
GO111MODULE
# From https://golang.org/pkg/runtime/#hdr-Environment_Variables
# From https://pkg.go.dev/runtime#hdr-Environment_Variables
unexport \
GOGC \
GOMEMLIMIT \
GOMAXPROCS \
GORACE \
GOTRACEBACK
# From https://golang.org/cmd/cgo/#hdr-Using_cgo_with_the_go_command
# From https://pkg.go.dev/cmd/cgo#hdr-Using_cgo_with_the_go_command
unexport \
CC_FOR_TARGET \
CXX_FOR_TARGET
@ -87,13 +97,12 @@ unexport \
# CC_FOR_${GOOS}_${GOARCH}
# CXX_FOR_${GOOS}_${GOARCH}
# From https://golang.org/doc/install/source#environment
# From https://go.dev/doc/install/source#environment
unexport \
GOHOSTOS \
GOHOSTARCH \
GOPPC64
GOHOSTARCH
# From https://golang.org/src/make.bash
# From https://go.dev/src/make.bash
unexport \
GO_GCFLAGS \
GO_LDFLAGS \
@ -102,20 +111,16 @@ unexport \
GOBUILDTIMELOGFILE \
GOROOT_BOOTSTRAP
# From https://golang.org/doc/go1.9#parallel-compile
# From https://go.dev/doc/go1.9#parallel-compile
unexport \
GO19CONCURRENTCOMPILATION
# From https://golang.org/src/cmd/dist/build.go
# From https://go.dev/src/cmd/dist/build.go
unexport \
BOOT_GO_GCFLAGS \
BOOT_GO_LDFLAGS
# From https://golang.org/src/cmd/dist/buildruntime.go
unexport \
GOEXPERIMENT
# From https://golang.org/src/cmd/dist/buildtool.go
# From https://go.dev/src/cmd/dist/buildtool.go
unexport \
GOBOOTSTRAP_TOOLEXEC
@ -148,12 +153,18 @@ else
endif
ifeq ($(GO_ARCH),386)
# ensure binaries can run on older CPUs
GO_386:=387
ifeq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),y)
GO_386:=softfloat
else
GO_386:=sse2
endif
# -fno-plt: causes "unexpected GOT reloc for non-dynamic symbol" errors
GO_CFLAGS_TO_REMOVE:=-fno-plt
else ifeq ($(GO_ARCH),amd64)
GO_AMD64:=v1
else ifeq ($(GO_ARCH),arm)
GO_TARGET_FPU:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE))))
@ -185,30 +196,36 @@ else ifneq ($(filter $(GO_ARCH),mips64 mips64le),)
GO_MIPS64:=softfloat
endif
else ifeq ($(GO_ARCH),ppc64)
GO_PPC64:=power8
endif
# Target Go
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||x86_64)
GO_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64)
# ASLR/PIE
# From https://go.dev/src/internal/platform/supported.go
GO_PIE_SUPPORTED_OS_ARCH:= \
android_386 android_amd64 android_arm android_arm64 \
linux_386 linux_amd64 linux_arm linux_arm64 \
android_386 android_amd64 android_arm android_arm64 \
linux_386 linux_amd64 linux_arm linux_arm64 \
windows_386 windows_amd64 windows_arm windows_arm64 \
\
windows_386 windows_amd64 windows_arm \
darwin_amd64 darwin_arm64 \
ios_amd64 ios_arm64 \
\
darwin_amd64 \
freebsd_amd64 \
\
aix_ppc64 \
\
linux_ppc64le linux_s390x
linux_loong64 linux_ppc64le linux_riscv64 linux_s390x
go_pie_install_suffix=$(if $(filter $(1),aix_ppc64 windows_386 windows_amd64 windows_arm),,shared)
# From https://go.dev/src/cmd/go/internal/work/init.go
go_pie_install_suffix=$(if $(filter $(1),aix_ppc64 windows_386 windows_amd64 windows_arm windows_arm64),,shared)
ifneq ($(filter $(GO_HOST_OS_ARCH),$(GO_PIE_SUPPORTED_OS_ARCH)),)
GO_HOST_PIE_SUPPORTED:=1
@ -236,7 +253,7 @@ endif
# General build info
GO_BUILD_CACHE_DIR:=$(or $(call qstrip,$(CONFIG_GOLANG_BUILD_CACHE_DIR)),$(TOPDIR)/.go-build)
GO_BUILD_CACHE_DIR:=$(or $(call qstrip,$(CONFIG_GOLANG_BUILD_CACHE_DIR)),$(TMP_DIR)/go-build)
GO_MOD_CACHE_DIR:=$(DL_DIR)/go-mod-cache
GO_MOD_ARGS= \
@ -249,6 +266,6 @@ GO_GENERAL_BUILD_CONFIG_VARS= \
GO_MOD_ARGS="$(GO_MOD_ARGS)"
define Go/CacheCleanup
$(GENERAL_BUILD_CONFIG_VARS) \
$(GO_GENERAL_BUILD_CONFIG_VARS) \
$(SHELL) $(GO_INCLUDE_DIR)/golang-build.sh cache_cleanup
endef

View file

@ -17,7 +17,7 @@ config GOLANG_BUILD_CACHE_DIR
default ""
help
Store the Go build cache in this directory.
If not set, uses './.go-build'.
If not set, uses '$(TMP_DIR)/go-build'.
config GOLANG_MOD_CACHE_WORLD_READABLE
bool "Ensure Go module cache is world-readable"

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2018, 2020 Jeffery To
# Copyright (C) 2018-2023 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -7,8 +7,8 @@
include $(TOPDIR)/rules.mk
GO_VERSION_MAJOR_MINOR:=1.15
GO_VERSION_PATCH:=2
GO_VERSION_MAJOR_MINOR:=1.23
GO_VERSION_PATCH:=4
PKG_NAME:=golang
PKG_VERSION:=$(GO_VERSION_MAJOR_MINOR)$(if $(GO_VERSION_PATCH),.$(GO_VERSION_PATCH))
@ -20,7 +20,7 @@ GO_SOURCE_URLS:=https://dl.google.com/go/ \
PKG_SOURCE:=go$(PKG_VERSION).src.tar.gz
PKG_SOURCE_URL:=$(GO_SOURCE_URLS)
PKG_HASH:=28bf9d0bcde251011caae230a4a05d917b172ea203f2a62f2c2f9533589d4b4d
PKG_HASH:=ad345ac421e90814293a9699cca19dd5238251c3f687980bbcae28495b263531
PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
PKG_LICENSE:=BSD-3-Clause
@ -30,11 +30,10 @@ PKG_CPE_ID:=cpe:/a:golang:go
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_DIR:=$(BUILD_DIR)/go-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
PKG_BUILD_FLAGS:=no-mips16
PKG_GO_PREFIX:=/usr
PKG_GO_VERSION_ID:=$(GO_VERSION_MAJOR_MINOR)
PKG_GO_ROOT:=$(PKG_GO_PREFIX)/lib/go-$(PKG_GO_VERSION_ID)
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/go-$(PKG_VERSION)
HOST_BUILD_PARALLEL:=1
@ -48,12 +47,13 @@ HOST_GO_VALID_OS_ARCH:= \
freebsd_386 freebsd_amd64 freebsd_arm freebsd_arm64 \
linux_386 linux_amd64 linux_arm linux_arm64 \
openbsd_386 openbsd_amd64 openbsd_arm openbsd_arm64 \
netbsd_386 netbsd_amd64 netbsd_arm netbsd_arm64 \
windows_386 windows_amd64 windows_arm windows_arm64 \
\
netbsd_386 netbsd_amd64 netbsd_arm \
plan9_386 plan9_amd64 plan9_arm \
windows_386 windows_amd64 windows_arm \
\
darwin_amd64 darwin_arm64 \
ios_amd64 ios_arm64 \
\
dragonfly_amd64 \
illumos_amd64 \
@ -61,10 +61,16 @@ HOST_GO_VALID_OS_ARCH:= \
\
aix_ppc64 \
js_wasm \
wasip1_wasm \
\
freebsd_riscv64 \
openbsd_riscv64 \
\
linux_ppc64 linux_ppc64le \
linux_mips linux_mipsle linux_mips64 linux_mips64le \
linux_riscv64 linux_s390x
linux_loong64 linux_riscv64 linux_s390x \
\
openbsd_mips64
BOOTSTRAP_SOURCE:=go1.4-bootstrap-20171003.tar.gz
BOOTSTRAP_SOURCE_URL:=$(GO_SOURCE_URLS)
@ -83,6 +89,18 @@ BOOTSTRAP_GO_VALID_OS_ARCH:= \
solaris_amd64 \
windows_386 windows_amd64
BOOTSTRAP_1_17_SOURCE:=go1.17.13.src.tar.gz
BOOTSTRAP_1_17_SOURCE_URL:=$(GO_SOURCE_URLS)
BOOTSTRAP_1_17_HASH:=a1a48b23afb206f95e7bbaa9b898d965f90826f6f1d1fc0c1d784ada0cd300fd
BOOTSTRAP_1_17_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap_1.17
BOOTSTRAP_1_20_SOURCE:=go1.20.6.src.tar.gz
BOOTSTRAP_1_20_SOURCE_URL:=$(GO_SOURCE_URLS)
BOOTSTRAP_1_20_HASH:=62ee5bc6fb55b8bae8f705e0cb8df86d6453626b4ecf93279e2867092e0b7f70
BOOTSTRAP_1_20_BUILD_DIR:=$(HOST_BUILD_DIR)/.go_bootstrap_1.20
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
include ../golang-compiler.mk
@ -91,6 +109,8 @@ include ../golang-package.mk
PKG_UNPACK:=$(HOST_TAR) -C "$(PKG_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
HOST_UNPACK:=$(HOST_TAR) -C "$(HOST_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(PKG_SOURCE)"
BOOTSTRAP_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_SOURCE)"
BOOTSTRAP_1_17_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_1_17_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_1_17_SOURCE)"
BOOTSTRAP_1_20_UNPACK:=$(HOST_TAR) -C "$(BOOTSTRAP_1_20_BUILD_DIR)" --strip-components=1 -xzf "$(DL_DIR)/$(BOOTSTRAP_1_20_SOURCE)"
# don't strip ELF executables in test data
RSTRIP:=:
@ -103,7 +123,7 @@ endif
define Package/golang/Default
$(call GoPackage/GoSubMenu)
TITLE:=Go programming language
URL:=https://golang.org/
URL:=https://go.dev/
DEPENDS:=$(GO_ARCH_DEPENDS)
endef
@ -178,8 +198,7 @@ ifeq ($(BOOTSTRAP_ROOT_DIR),)
$(eval $(call Download,golang-bootstrap))
define Bootstrap/Prepare
mkdir -p "$(BOOTSTRAP_BUILD_DIR)"
$(BOOTSTRAP_UNPACK)
mkdir -p "$(BOOTSTRAP_BUILD_DIR)" && $(BOOTSTRAP_UNPACK) ;
endef
Hooks/HostPrepare/Post+=Bootstrap/Prepare
@ -187,6 +206,39 @@ ifeq ($(BOOTSTRAP_ROOT_DIR),)
endif
# Bootstrap 1.17
define Download/golang-bootstrap-1.17
FILE:=$(BOOTSTRAP_1_17_SOURCE)
URL:=$(BOOTSTRAP_1_17_SOURCE_URL)
HASH:=$(BOOTSTRAP_1_17_HASH)
endef
$(eval $(call Download,golang-bootstrap-1.17))
define Bootstrap-1.17/Prepare
mkdir -p "$(BOOTSTRAP_1_17_BUILD_DIR)" && $(BOOTSTRAP_1_17_UNPACK) ;
endef
Hooks/HostPrepare/Post+=Bootstrap-1.17/Prepare
$(eval $(call GoCompiler/AddProfile,Bootstrap-1.17,$(BOOTSTRAP_1_17_BUILD_DIR),,bootstrap-1.17,$(GO_HOST_OS_ARCH)))
# Bootstrap 1.20
define Download/golang-bootstrap-1.20
FILE:=$(BOOTSTRAP_1_20_SOURCE)
URL:=$(BOOTSTRAP_1_20_SOURCE_URL)
HASH:=$(BOOTSTRAP_1_20_HASH)
endef
$(eval $(call Download,golang-bootstrap-1.20))
define Bootstrap-1.20/Prepare
mkdir -p "$(BOOTSTRAP_1_20_BUILD_DIR)" && $(BOOTSTRAP_1_20_UNPACK) ;
endef
Hooks/HostPrepare/Post+=Bootstrap-1.20/Prepare
$(eval $(call GoCompiler/AddProfile,Bootstrap-1.20,$(BOOTSTRAP_1_20_BUILD_DIR),,bootstrap-1.20,$(GO_HOST_OS_ARCH)))
# Host
ifeq ($(GO_HOST_PIE_SUPPORTED),1)
@ -199,23 +251,36 @@ endif
$(eval $(call GoCompiler/AddProfile,Host,$(HOST_BUILD_DIR),$(HOST_GO_PREFIX),$(HOST_GO_VERSION_ID),$(GO_HOST_OS_ARCH),$(HOST_GO_INSTALL_SUFFIX)))
HOST_GO_VARS= \
GOHOSTARCH="$(GO_HOST_ARCH)" \
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
GOENV=off \
CC="$(HOSTCC_NOCACHE)" \
CXX="$(HOSTCXX_NOCACHE)"
define Host/Compile
define Host/Configure
$(call GoCompiler/Bootstrap/CheckHost,$(BOOTSTRAP_GO_VALID_OS_ARCH))
$(call GoCompiler/Host/CheckHost,$(HOST_GO_VALID_OS_ARCH))
mkdir -p "$(GO_BUILD_CACHE_DIR)"
endef
define Host/Compile
$(call GoCompiler/Bootstrap/Make, \
$(HOST_GO_VARS) \
)
$(call GoCompiler/Host/Make, \
$(call GoCompiler/Bootstrap-1.17/Make, \
GOROOT_BOOTSTRAP="$(BOOTSTRAP_ROOT_DIR)" \
$(HOST_GO_VARS) \
)
$(call GoCompiler/Bootstrap-1.20/Make, \
GOROOT_BOOTSTRAP="$(BOOTSTRAP_1_17_BUILD_DIR)" \
$(HOST_GO_VARS) \
)
$(call GoCompiler/Host/Make, \
GOROOT_BOOTSTRAP="$(BOOTSTRAP_1_20_BUILD_DIR)" \
$(if $(HOST_GO_ENABLE_PIE),GO_LDFLAGS="-buildmode pie") \
$(HOST_GO_VARS) \
)
@ -258,13 +323,17 @@ endif
$(eval $(call GoCompiler/AddProfile,Package,$(PKG_BUILD_DIR),$(PKG_GO_PREFIX),$(PKG_GO_VERSION_ID),$(GO_OS_ARCH),$(PKG_GO_INSTALL_SUFFIX)))
PKG_GO_ZBOOTSTRAP_MODS:= \
s/defaultGO386 = `[^`]*`/defaultGO386 = `$(or $(GO_386),387)`/; \
s/defaultGOARM = `[^`]*`/defaultGOARM = `$(or $(GO_ARM),5)`/; \
s/defaultGO386 = `[^`]*`/defaultGO386 = `$(or $(GO_386),sse2)`/; \
s/defaultGOAMD64 = `[^`]*`/defaultGOAMD64 = `$(or $(GO_AMD64),v1)`/; \
s/defaultGOARM = `[^`]*`/defaultGOARM = `$(or $(GO_ARM),7)`/; \
s/defaultGOMIPS = `[^`]*`/defaultGOMIPS = `$(or $(GO_MIPS),hardfloat)`/; \
s/defaultGOMIPS64 = `[^`]*`/defaultGOMIPS64 = `$(or $(GO_MIPS64),hardfloat)`/; \
s/defaultGOPPC64 = `[^`]*`/defaultGOPPC64 = `power8`/;
s/defaultGOPPC64 = `[^`]*`/defaultGOPPC64 = `$(or $(GO_PPC64),power8)`/;
PKG_GO_ZBOOTSTRAP_PATH:=$(PKG_BUILD_DIR)/src/internal/buildcfg/zbootstrap.go
PKG_GO_VARS= \
GOHOSTARCH="$(GO_HOST_ARCH)" \
GOCACHE="$(GO_BUILD_CACHE_DIR)" \
GOENV=off \
GO_GCC_HELPER_PATH="$$$$PATH" \
@ -285,18 +354,19 @@ PKG_GO_LDFLAGS= \
-extldflags '$(patsubst -z%,-Wl$(comma)-z$(comma)%,$(TARGET_LDFLAGS))' \
$(if $(CONFIG_NO_STRIP)$(CONFIG_DEBUG),,-s -w)
# setting -trimpath is not necessary here because the paths inside the
# compiler binary are relative to GOROOT_FINAL (PKG_GO_ROOT), which is
# static / not dependent on the build environment
PKG_GO_INSTALL_ARGS= \
-buildvcs=false \
-trimpath \
-ldflags "all=$(PKG_GO_LDFLAGS)" \
$(if $(PKG_GO_GCFLAGS),-gcflags "all=$(PKG_GO_GCFLAGS)") \
$(if $(PKG_GO_ASMFLAGS),-asmflags "all=$(PKG_GO_ASMFLAGS)") \
$(if $(filter $(GO_PKG_ENABLE_PIE),1),-buildmode pie)
define Build/Compile
define Build/Configure
mkdir -p "$(GO_BUILD_CACHE_DIR)"
endef
define Build/Compile
@echo "Building target Go first stage"
$(call GoCompiler/Package/Make, \
@ -306,8 +376,17 @@ define Build/Compile
$(PKG_GO_VARS) \
)
$(SED) '$(PKG_GO_ZBOOTSTRAP_MODS)' \
"$(PKG_BUILD_DIR)/src/cmd/internal/objabi/zbootstrap.go"
$(SED) '$(PKG_GO_ZBOOTSTRAP_MODS)' "$(PKG_GO_ZBOOTSTRAP_PATH)"
( \
if echo 'int main() { return 0; }' | $(TARGET_CC) -o $(PKG_BUILD_DIR)/test-ldso -x c - > /dev/null 2>&1; then \
LDSO=$$$$( \
readelf -l $(PKG_BUILD_DIR)/test-ldso | \
sed -n -e 's/^.*interpreter: \(.*\)[]]/\1/p' \
) ; \
fi ; \
$(SED) "s,defaultGO_LDSO = \`[^\`]*\`,defaultGO_LDSO = \`$$$$LDSO\`," "$(PKG_GO_ZBOOTSTRAP_PATH)" ; \
)
@echo "Building target Go second stage"
@ -315,7 +394,6 @@ define Build/Compile
cd "$(PKG_BUILD_DIR)/bin" ; \
export $(GO_PKG_TARGET_VARS) ; \
$(CP) go go-host ; \
GOROOT_FINAL="$(PKG_GO_ROOT)" \
GO_GCC_HELPER_CC="$(TARGET_CC)" \
GO_GCC_HELPER_CXX="$(TARGET_CXX)" \
$(PKG_GO_VARS) \

View file

@ -1,4 +1,10 @@
#!/bin/sh
#
# Copyright (C) 2018, 2020 Jeffery To
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
me=go-gcc-helper
name="${0##*/}"

5
golang/golang/test.sh Normal file
View file

@ -0,0 +1,5 @@
#!/bin/sh
[ "$1" = golang ] || exit 0
go version | grep -F " go$PKG_VERSION "

60
grpcurl/Makefile Normal file
View file

@ -0,0 +1,60 @@
#
# Copyright (C) 2022 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=grpcurl
PKG_VERSION:=1.8.6
PKG_RELEASE:=1
PKG_SOURCE:=v$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/fullstorydev/grpcurl/archive/refs/tags/
PKG_HASH:=18b457f644baabeef0de350596dd8d23563586ee94a3ed3cb290063e097ab934
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_MAINTAINER:=Yannick Chabanois <ycarus@zugaina.org>
PKG_BUILD_DEPENDS:=golang/host
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
GO_PKG:=github.com/fullstorydev/grpcurl
GO_PKG_BUILD_PKG:=github.com/fullstorydev/grpcurl/cmd/grpcurl
GO_PKG_LDFLAGS_X:= \
$(GO_PKG)/constant.Version=$(PKG_VERSION) \
$(GO_PKG)/constant.Commit=v$(PKG_VERSION)
GO_PKG_LDFLAGS:=-s -w
GO_PKG_TAGS:=master
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk
define Package/grpcurl
TITLE:=grpcurl is a command-line tool that lets you interact with gRPC servers
URL:=https://github.com/fullstorydev/grpcurl
SECTION:=net
CATEGORY:=Network
DEPENDS:=$(GO_ARCH_DEPENDS) +protobuf
endef
define Package/grpcurl/description
grpcurl is a command-line tool that lets you interact with gRPC servers. It's basically curl for gRPC servers.
The main purpose for this tool is to invoke RPC methods on a gRPC server from the command-line. gRPC servers use a binary encoding on the wire (protocol buffers, or "protobufs" for short). So they are basically impossible to interact with using regular curl (and older versions of curl that do not support HTTP/2 are of course non-starters). This program accepts messages using JSON encoding, which is much more friendly for both humans and scripts.
endef
define Package/v2ray-core/install
$(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR))
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/grpcurl $(1)/usr/bin
endef
$(eval $(call GoBinPackage,grpcurl))
$(eval $(call BuildPackage,grpcurl))

View file

@ -1,48 +0,0 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=https-dns-proxy
PKG_VERSION:=2021-01-17
PKG_RELEASE=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/aarond10/https_dns_proxy
PKG_SOURCE_DATE:=2021-01-17
PKG_SOURCE_VERSION:=37511cc08712d7548978a4f6f1cc457b7594fb96
PKG_MIRROR_HASH:=4e6a7dcb69e350d1df9f17570439b589e031e249da7f91f2ec7600a955e0aaa3
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
CMAKE_OPTIONS += -DCLANG_TIDY_EXE=
define Package/https-dns-proxy
SECTION:=net
CATEGORY:=Network
TITLE:=DNS Over HTTPS Proxy
URL:=https://docs.openwrt.melmac.net/https-dns-proxy/
DEPENDS:=+libcares +libcurl +libev +ca-bundle
CONFLICTS:=https_dns_proxy
endef
define Package/https-dns-proxy/description
https-dns-proxy is a light-weight DNS<-->HTTPS, non-caching translation proxy for the RFC 8484 DoH standard.
It receives regular (UDP) DNS requests and issues them via DoH.
Please see https://docs.openwrt.melmac.net/https-dns-proxy/ for more information.
endef
define Package/https-dns-proxy/conffiles
/etc/config/https-dns-proxy
endef
define Package/https-dns-proxy/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d ${1}/etc/config
$(INSTALL_BIN) $(PKG_BUILD_DIR)/https_dns_proxy $(1)/usr/sbin/https-dns-proxy
$(INSTALL_BIN) ./files/https-dns-proxy.init $(1)/etc/init.d/https-dns-proxy
$(SED) "s|^\(PKG_VERSION\).*|\1='$(PKG_VERSION)-$(PKG_RELEASE)'|" $(1)/etc/init.d/https-dns-proxy
$(INSTALL_CONF) ./files/https-dns-proxy.config $(1)/etc/config/https-dns-proxy
endef
$(eval $(call BuildPackage,https-dns-proxy))

View file

@ -1,95 +0,0 @@
# DNS Over HTTPS Proxy (https-dns-proxy)
A lean RFC8484-compatible (no JSON API support) DNS-over-HTTPS (DoH) proxy service which supports DoH servers ran by AdGuard, CleanBrowsing, Cloudflare, Google, ODVR (nic.cz) and Quad9. Please see the [README](https://github.com/stangri/openwrt_packages/blob/master/https-dns-proxy/files/README.md) for further information. Based on [@aarond10](https://github.com/aarond10)'s [https-dns-proxy](https://github.com/aarond10/https_dns_proxy).
## Features
- [RFC8484](https://tools.ietf.org/html/rfc8484)-compatible DoH Proxy.
- Compact size.
- Web UI (```luci-app-https-dns-proxy```) available.
- (By default) automatically updates DNSMASQ settings to use DoH proxy when it's started and reverts to old DNSMASQ resolvers when DoH proxy is stopped.
## Screenshots (luci-app-https-dns-proxy)
![screenshot](https://raw.githubusercontent.com/stangri/openwrt_packages/master/screenshots/https-dns-proxy/screenshot01.png "https-dns-proxy screenshot")
## Requirements
This proxy requires the following packages to be installed on your router: ```libc```, ```libcares```, ```libcurl```, ```libev```, ```ca-bundle```. They will be automatically installed when you're installing ```https-dns-proxy```.
## Unmet Dependencies
If you are running a development (trunk/snapshot) build of OpenWrt/LEDE Project on your router and your build is outdated (meaning that packages of the same revision/commit hash are no longer available and when you try to satisfy the [requirements](#requirements) you get errors), please flash either current LEDE release image or current development/snapshot image.
## How To Install
Install ```https-dns-proxy``` and ```luci-app-https-dns-proxy``` packages from Web UI or run the following in the command line:
```sh
opkg update; opkg install https-dns-proxy luci-app-https-dns-proxy;
```
## Default Settings
Default configuration has service enabled and starts the service with Google and Cloudflare DoH servers. In most configurations, you will keep the default ```DNSMASQ``` service installed to handle requests from devices in your local network and point ```DNSMASQ``` to use ```https-dns-proxy``` for name resolution.
By default, the service will intelligently override existing ```DNSMASQ``` servers settings on start to use the DoH servers and restores original ```DNSMASQ``` servers on stop. See the [Configuration Settings](#configuration-settings) section below for more information and how to disable this behavior.
## Configuration Settings
Configuration contains the (named) "main" config section where you can configure which ```DNSMASQ``` settings the service will automatically affect and the typed (unnamed) https-dns-proxy instance settings. The original config file is included below:
```text
config main 'config'
option update_dnsmasq_config '*'
config https-dns-proxy
option bootstrap_dns '8.8.8.8,8.8.4.4'
option resolver_url 'https://dns.google/dns-query'
option listen_addr '127.0.0.1'
option listen_port '5053'
option user 'nobody'
option group 'nogroup'
config https-dns-proxy
option bootstrap_dns '1.1.1.1,1.0.0.1'
option resolver_url 'https://cloudflare-dns.com/dns-query'
option listen_addr '127.0.0.1'
option listen_port '5054'
option user 'nobody'
option group 'nogroup'
```
The ```update_dnsmasq_config``` option can be set to dash (set to ```'-'``` to not change ```DNSMASQ``` server settings on start/stop), can be set to ```'*'``` to affect all ```DNSMASQ``` instance server settings or have a space-separated list of ```DNSMASQ``` instances to affect (like ```'0 4 5'```). If this option is omitted, the default setting is ```'*'```.
Starting with ```https-dns-proxy``` version ```2019-12-03-3``` and higher, when the service is set to update the DNSMASQ servers setting on start/stop, it does not override entries which contain either ```#``` or ```/```, so the entries like listed below will be kept in use:
```test
list server '/onion/127.0.0.1#65453'
list server '/openwrt.org/8.8.8.8'
list server '/pool.ntp.org/8.8.8.8'
list server '127.0.0.1#15353'
list server '127.0.0.1#55353'
list server '127.0.0.1#65353'
```
The https-dns-proxy instance settings are:
|Parameter|Type|Default|Description|
| --- | --- | --- | --- |
|bootstrap_dns|IP Address||The non-encrypted DNS servers to be used to resolve the DoH server name on start.|
|edns_subnet|Subnet||EDNS Subnet address can be supplied to supported DoH servers to provide local resolution results.|
|listen_addr|IP Address|127.0.0.1|The local IP address to listen to requests.|
|listen_port|port|5053 and up|If this setting is omitted, the service will start the first https-dns-proxy instance on port 5053, second on 5054 and so on.|
|logfile|Full filepath||Full filepath to the file to log the instance events to.|
|resolver_url|URL||The https URL to the RFC8484-compatible resolver.|
|proxy_server|URL||Local proxy server to use when accessing resolvers.|
|user|String|nobody|Local user to run instance under.|
|group|String|nogroup|Local group to run instance under.|
|use_http1|Boolean|0|If set to 1, use HTTP/1 on installations with broken/outdated ```curl``` package. Included for posterity reasons, you will most likely not ever need it on OpenWrt.|
|verbosity|Integer|0|logging verbosity level. fatal = 0, error = 1, warning = 2, info = 3, debug = 4|
|use_ipv6_resolvers_only|Boolean|0|If set to 1, Forces IPv6 DNS resolvers instead of IPv4|
## Thanks
This OpenWrt package wouldn't have been possible without [@aarond10](https://github.com/aarond10)'s [https-dns-proxy](https://github.com/aarond10/https_dns_proxy) and his active participation in the OpenWrt package itself. Special thanks to [@jow-](https://github.com/jow-) for general package/luci guidance.

View file

@ -1,18 +0,0 @@
config main 'config'
option update_dnsmasq_config '*'
config https-dns-proxy
option bootstrap_dns '8.8.8.8,8.8.4.4'
option resolver_url 'https://dns.google/dns-query'
option listen_addr '127.0.0.1'
option listen_port '5053'
option user 'nobody'
option group 'nogroup'
config https-dns-proxy
option bootstrap_dns '1.1.1.1,1.0.0.1'
option resolver_url 'https://cloudflare-dns.com/dns-query'
option listen_addr '127.0.0.1'
option listen_port '5054'
option user 'nobody'
option group 'nogroup'

View file

@ -1,220 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright 2019-2020 Stan Grishin (stangri@melmac.net)
# shellcheck disable=SC2039
PKG_VERSION='dev-test'
# shellcheck disable=SC2034
START=80
# shellcheck disable=SC2034
USE_PROCD=1
if type extra_command 1>/dev/null 2>&1; then
extra_command 'version' 'Show version information'
else
# shellcheck disable=SC2034
EXTRA_COMMANDS='version'
fi
readonly PROG=/usr/sbin/https-dns-proxy
dnsmasqConfig=''
forceDNS='1'
version() { echo "$PKG_VERSION"; }
xappend() { param="$param $1"; }
append_bool() {
local section="$1"
local option="$2"
local value="$3"
local default="$4"
local _loctmp
[ -z "$default" ] && default="0"
config_get_bool _loctmp "$section" "$option" "$default"
[ "$_loctmp" != "0" ] && xappend "$value"
}
append_parm() {
local section="$1"
local option="$2"
local switch="$3"
local default="$4"
local _loctmp
config_get _loctmp "$section" "$option" "$default"
[ -z "$_loctmp" ] && return 0
xappend "$switch $_loctmp"
}
start_instance() {
local cfg="$1" param listen_addr listen_port i
append_parm "$cfg" 'resolver_url' '-r'
append_parm "$cfg" 'polling_interval' '-i'
append_parm "$cfg" 'listen_addr' '-a' '127.0.0.1'
append_parm "$cfg" 'listen_port' '-p' "$p"
append_parm "$cfg" 'dscp_codepoint' '-c'
append_parm "$cfg" 'bootstrap_dns' '-b'
append_parm "$cfg" 'user' '-u' 'nobody'
append_parm "$cfg" 'group' '-g' 'nogroup'
append_parm "$cfg" 'proxy_server' '-t'
append_parm "$cfg" 'logfile' '-l'
append_bool "$cfg" 'use_http1' '-x'
config_get_bool ipv6_resolvers_only "$cfg" 'use_ipv6_resolvers_only' '0'
config_get verbosity "$cfg" 'verbosity' '0'
# shellcheck disable=SC2086,SC2154
for i in $(seq 1 $verbosity); do
xappend '-v'
done
# shellcheck disable=SC2154
if [ "$ipv6_resolvers_only" = 0 ]; then
xappend '-4'
fi
procd_open_instance
# shellcheck disable=SC2086
procd_set_param command ${PROG} ${param}
procd_set_param stderr 1
procd_set_param stdout 1
procd_set_param respawn
procd_close_instance
config_get listen_addr "$cfg" 'listen_addr' '127.0.0.1'
config_get listen_port "$cfg" 'listen_port' "$p"
if [ "$dnsmasqConfig" = "*" ]; then
config_load 'dhcp'
config_foreach dnsmasq_add_doh_server 'dnsmasq' "${listen_addr}" "${listen_port}"
elif [ -n "$dnsmasqConfig" ]; then
for i in $dnsmasqConfig; do
dnsmasq_add_doh_server "@dnsmasq[${i}]" "${listen_addr}" "${listen_port}"
done
fi
p="$((p+1))"
}
is_force_dns_active() { iptables-save | grep -q -w -- '--dport 53'; }
start_service() {
local p=5053
config_load 'https-dns-proxy'
config_get dnsmasqConfig 'config' 'update_dnsmasq_config' '*'
config_get_bool forceDNS 'config' 'force_dns' '1'
dhcp_backup 'create'
config_load 'https-dns-proxy'
config_foreach start_instance 'https-dns-proxy'
if [ "$forceDNS" -ne 0 ]; then
procd_open_instance 'main'
procd_set_param command /bin/true
procd_set_param stdout 1
procd_set_param stderr 1
procd_open_data
json_add_array firewall
json_add_object ''
json_add_string type redirect
json_add_string name https_dns_proxy_dns_redirect
json_add_string target DNAT
json_add_string src lan
json_add_string proto tcpudp
json_add_string src_dport 53
json_add_string dest_port 53
json_add_string reflection 0
json_close_object
json_close_array
procd_close_data
procd_close_instance
fi
if [ -n "$(uci -q changes dhcp)" ]; then
uci -q commit dhcp
[ -x /etc/init.d/dnsmasq ] && /etc/init.d/dnsmasq restart >/dev/null 2>&1
fi
}
stop_service() {
config_load 'https-dns-proxy'
config_get dnsmasqConfig 'config' 'update_dnsmasq_config' '*'
dhcp_backup 'restore'
if [ -n "$(uci -q changes dhcp)" ]; then
uci -q commit dhcp
[ -x /etc/init.d/dnsmasq ] && /etc/init.d/dnsmasq restart >/dev/null 2>&1
fi
}
service_triggers() {
procd_add_config_trigger "config.change" "https-dns-proxy" /etc/init.d/https-dns-proxy reload
}
service_started() { procd_set_config_changed firewall; }
service_stopped() { procd_set_config_changed firewall; }
dnsmasq_add_doh_server() {
local cfg="$1" address="$2" port="$3"
case $address in
0.0.0.0|::ffff:0.0.0.0) address='127.0.0.1';;
::) address='::1';;
esac
uci -q del_list "dhcp.${cfg}.server=${address}#${port}"
uci -q add_list "dhcp.${cfg}.server=${address}#${port}"
}
dnsmasq_create_server_backup() {
local cfg="$1"
local i
uci -q get "dhcp.${cfg}" >/dev/null || return 0
if ! uci -q get "dhcp.${cfg}.doh_backup_noresolv" >/dev/null; then
if [ -z "$(uci -q get "dhcp.${cfg}.noresolv")" ]; then
uci -q set "dhcp.${cfg}.noresolv=1"
uci -q set "dhcp.${cfg}.doh_backup_noresolv=-1"
elif [ "$(uci -q get "dhcp.${cfg}.noresolv")" != "1" ]; then
uci -q set "dhcp.${cfg}.noresolv=1"
uci -q set "dhcp.${cfg}.doh_backup_noresolv=0"
fi
fi
if ! uci -q get "dhcp.${cfg}.doh_backup_server" >/dev/null; then
for i in $(uci -q get "dhcp.${cfg}.server"); do
uci -q add_list "dhcp.${cfg}.doh_backup_server=$i"
if [ "$i" = "${i//127.0.0.1}" ] && [ "$i" = "$(echo "$i" | tr -d /)" ]; then
uci -q del_list "dhcp.${cfg}.server=$i"
fi
done
fi
}
dnsmasq_restore_server_backup() {
local cfg="$1"
local i
uci -q get "dhcp.${cfg}" >/dev/null || return 0
if uci -q get "dhcp.${cfg}.doh_backup_noresolv" >/dev/null; then
if [ "$(uci -q get "dhcp.${cfg}.doh_backup_noresolv")" = "0" ]; then
uci -q set "dhcp.${cfg}.noresolv=0"
else
uci -q del "dhcp.${cfg}.noresolv"
fi
uci -q del "dhcp.${cfg}.doh_backup_noresolv"
fi
if uci -q get "dhcp.${cfg}.doh_backup_server" >/dev/null; then
uci -q del "dhcp.${cfg}.server"
for i in $(uci -q get "dhcp.${cfg}.doh_backup_server"); do
uci -q add_list "dhcp.${cfg}.server=$i"
done
uci -q del "dhcp.${cfg}.doh_backup_server"
fi
}
dhcp_backup() {
local i
config_load 'dhcp'
case "$1" in
create)
if [ "$dnsmasqConfig" = "*" ]; then
config_foreach dnsmasq_create_server_backup 'dnsmasq'
elif [ -n "$dnsmasqConfig" ]; then
for i in $dnsmasqConfig; do
dnsmasq_create_server_backup "@dnsmasq[${i}]"
done
fi
;;
restore)
config_foreach dnsmasq_restore_server_backup 'dnsmasq'
;;
esac
}

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
# Copyright (C) 2018-2023 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -10,11 +10,12 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ipcalc
PKG_RELEASE:=1
PKG_SOURCE_URL:=https://github.com/nmav/ipcalc.git
PKG_SOURCE_URL:=https://gitlab.com/ipcalc/ipcalc.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=e9f88461f2585575d12fc95f5eeb9996b863f5af
PKG_SOURCE_VERSION:=d8a2fe29a89f0f9f0d44a7b15e260c74f0e8388b
PKG_MAINTAINER:=Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILE:=COPYING
include $(INCLUDE_DIR)/package.mk

113
iperf3/Makefile Normal file
View file

@ -0,0 +1,113 @@
#
# Copyright (C) 2007-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=iperf
PKG_VERSION:=3.18
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://downloads.es.net/pub/iperf
PKG_HASH:=c0618175514331e766522500e20c94bfb293b4424eb27d7207fb427b88d20bab
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=BSD-3-Clause
PKG_CPE_ID:=cpe:/a:es:iperf3
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
DISABLE_NLS:=
define Package/iperf3/default
SECTION:=net
CATEGORY:=Network
TITLE:=Internet Protocol bandwidth measuring tool
URL:=https://github.com/esnet/iperf
endef
define Package/iperf3
$(call Package/iperf3/default)
VARIANT:=nossl
DEPENDS:=+libiperf3
endef
define Package/iperf3-ssl
$(call Package/iperf3/default)
TITLE+= with iperf_auth support
VARIANT:=ssl
DEPENDS:=+libopenssl +libatomic
CONFLICTS:=iperf3
endef
define Package/libiperf3
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Internet Protocol bandwidth measuring library
URL:=https://github.com/esnet/iperf
DEPENDS+=+libatomic
endef
TARGET_CFLAGS += -D_GNU_SOURCE
TARGET_LDFLAGS += -latomic
ifeq ($(BUILD_VARIANT),ssl)
CONFIGURE_ARGS += --with-openssl="$(STAGING_DIR)/usr" --disable-shared
else
CONFIGURE_ARGS += --without-openssl
endif
CONFIGURE_ARGS += --without-sctp
MAKE_FLAGS += noinst_PROGRAMS=
define Package/iperf3/description
Iperf is a modern alternative for measuring TCP and UDP bandwidth
performance, allowing the tuning of various parameters and
characteristics.
endef
define Package/libiperf3/description
Libiperf is a library providing an API for iperf3 functionality.
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libiperf.* $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
endef
# autoreconf fails if the README file isn't present
define Build/Prepare
$(call Build/Prepare/Default)
touch $(PKG_BUILD_DIR)/README
endef
define Package/iperf3/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/
endef
define Package/iperf3-ssl/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/iperf3 $(1)/usr/bin/
endef
define Package/libiperf3/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libiperf.so.* $(1)/usr/lib
endef
$(eval $(call BuildPackage,iperf3))
$(eval $(call BuildPackage,iperf3-ssl))
$(eval $(call BuildPackage,libiperf3))

View file

@ -0,0 +1,21 @@
From fe09305eb6f907e4eb637b8edd0c8a986187d1dd Mon Sep 17 00:00:00 2001
From: Rosen Penev <rosenp@gmail.com>
Date: Sat, 8 Jun 2024 15:23:51 -0700
Subject: [PATCH] fix crash under big endian musl
iperf_printf is using an int format here but an int64_t variable. The format only needs the first 3 digits. Cast to int to fix it.
---
src/iperf_api.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/src/iperf_api.c
+++ b/src/iperf_api.c
@@ -4137,7 +4137,7 @@ iperf_print_results(struct iperf_test *t
iperf_printf(test, report_sender_not_available_summary_format, "SUM");
}
else {
- iperf_printf(test, report_sum_bw_retrans_format, mbuf, start_time, sender_time, ubuf, nbuf, total_retransmits, report_sender);
+ iperf_printf(test, report_sum_bw_retrans_format, mbuf, start_time, sender_time, ubuf, nbuf, (int)total_retransmits, report_sender);
}
} else {
/* Summary sum, TCP without retransmits. */

View file

@ -0,0 +1,266 @@
From cf75cf46785871330717a6d2c889abeb7bbd7bfd Mon Sep 17 00:00:00 2001
From: Geliang Tang <geliang@kernel.org>
Date: Wed, 6 Mar 2024 11:23:33 +0800
Subject: [PATCH] add MPTCPv1 support
The Multipath TCP (MPTCP) protocol (v1 / RFC 8684) has been added in
the upstream Linux kernel since v5.6.
MPTCP is strongly tied to TCP, and the kernel APIs are almost the same.
The only required dependency is the 'IPPROTO_MPTCP' protocol number
definition, which should be provided by the netinet/in.h header if it
is recent enough.
This patch adds a new flag '-m' or '--mptcp' to support MPTCPv1. It can
be used like this:
> iperf3 -m -s
> iperf3 -m -c 127.0.0.1
If IPPROTO_MPTCP is not supported by the kernel being tested, it is
normal to fail because the feature is not available and the user
explicitly asked to use MPTCP.
Closes: https://github.com/esnet/iperf/pull/1659
Co-developed-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Geliang Tang <geliang@kernel.org>
---
configure.ac | 12 ++++++++++++
src/iperf.h | 1 +
src/iperf3.1 | 4 ++++
src/iperf_api.c | 19 ++++++++++++++++++-
src/iperf_locale.c | 3 +++
src/iperf_tcp.c | 18 +++++++++++++++---
src/net.c | 10 +++++-----
src/net.h | 2 +-
8 files changed, 59 insertions(+), 10 deletions(-)
diff --git a/configure.ac b/configure.ac
index 66c1e97a5..22c2a95cf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -337,6 +337,18 @@ if test "x$iperf3_cv_header_tcp_info_snd_wnd" = "xyes"; then
AC_DEFINE([HAVE_TCP_INFO_SND_WND], [1], [Have tcpi_snd_wnd field in tcp_info.])
fi
+# Check for IPPROTO_MPTCP (Linux)
+AC_CACHE_CHECK([MPTCP protocol],
+[iperf3_cv_header_ipproto_mptcp],
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <netinet/in.h>]],
+ [[int foo = IPPROTO_MPTCP;]])],
+ iperf3_cv_header_ipproto_mptcp=yes,
+ iperf3_cv_header_ipproto_mptcp=no))
+if test "x$iperf3_cv_header_ipproto_mptcp" = "xyes"; then
+ AC_DEFINE([HAVE_IPPROTO_MPTCP], [1], [Have MPTCP protocol.])
+fi
+
# Check if we need -lrt for clock_gettime
AC_SEARCH_LIBS(clock_gettime, [rt posix4])
# Check for clock_gettime support
diff --git a/src/iperf.h b/src/iperf.h
index 202d3016f..4043031b3 100644
--- a/src/iperf.h
+++ b/src/iperf.h
@@ -353,6 +353,7 @@ struct iperf_test
int repeating_payload; /* --repeating-payload */
int timestamps; /* --timestamps */
char *timestamp_format;
+ int mptcp; /* -m, --mptcp */
char *json_output_string; /* rendered JSON output if json_output is set */
/* Select related parameters */
diff --git a/src/iperf3.1 b/src/iperf3.1
index f8eff48d2..9e425cabc 100644
--- a/src/iperf3.1
+++ b/src/iperf3.1
@@ -202,6 +202,10 @@ iperf-3.17, OAEP padding is used, however this is a breaking change
that is not compatible with older iperf3 versions. Use this option to
preserve the less secure, but more compatible, behavior.
.TP
+.BR -m ", " --mptcp " "
+use mptcp variant for the current protocol. This only applies to
+TCP and enables MPTCP usage.
+.TP
.BR -d ", " --debug " "
emit debugging output.
Primarily (perhaps exclusively) of use to developers.
diff --git a/src/iperf_api.c b/src/iperf_api.c
index fa06dc830..419b48657 100644
--- a/src/iperf_api.c
+++ b/src/iperf_api.c
@@ -1149,6 +1149,9 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
{"idle-timeout", required_argument, NULL, OPT_IDLE_TIMEOUT},
{"rcv-timeout", required_argument, NULL, OPT_RCV_TIMEOUT},
{"snd-timeout", required_argument, NULL, OPT_SND_TIMEOUT},
+#if defined(HAVE_IPPROTO_MPTCP)
+ {"mptcp", no_argument, NULL, 'm'},
+#endif
{"debug", optional_argument, NULL, 'd'},
{"help", no_argument, NULL, 'h'},
{NULL, 0, NULL, 0}
@@ -1174,7 +1177,7 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
FILE *ptr_file;
#endif /* HAVE_SSL */
- while ((flag = getopt_long(argc, argv, "p:f:i:D1VJvsc:ub:t:n:k:l:P:Rw:B:M:N46S:L:ZO:F:A:T:C:dI:hX:", longopts, NULL)) != -1) {
+ while ((flag = getopt_long(argc, argv, "p:f:i:D1VJvsc:ub:t:n:k:l:P:Rw:B:M:N46S:L:ZO:F:A:T:C:dI:mhX:", longopts, NULL)) != -1) {
switch (flag) {
case 'p':
portno = atoi(optarg);
@@ -1647,6 +1650,12 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
test->settings->connect_timeout = unit_atoi(optarg);
client_flag = 1;
break;
+#if defined(HAVE_IPPROTO_MPTCP)
+ case 'm':
+ set_protocol(test, Ptcp);
+ test->mptcp = 1;
+ break;
+#endif
case 'h':
usage_long(stdout);
exit(0);
@@ -2259,6 +2268,10 @@ send_parameters(struct iperf_test *test)
cJSON_AddTrueToObject(j, "reverse");
if (test->bidirectional)
cJSON_AddTrueToObject(j, "bidirectional");
+#if defined(HAVE_IPPROTO_MPTCP)
+ if (test->mptcp)
+ cJSON_AddTrueToObject(j, "mptcp");
+#endif
if (test->settings->socket_bufsize)
cJSON_AddNumberToObject(j, "window", test->settings->socket_bufsize);
if (test->settings->blksize)
@@ -2375,6 +2388,10 @@ get_parameters(struct iperf_test *test)
iperf_set_test_reverse(test, 1);
if ((j_p = iperf_cJSON_GetObjectItemType(j, "bidirectional", cJSON_True)) != NULL)
iperf_set_test_bidirectional(test, 1);
+#if defined(HAVE_IPPROTO_MPTCP)
+ if ((j_p = iperf_cJSON_GetObjectItemType(j, "mptcp", cJSON_True)) != NULL)
+ test->mptcp = 1;
+#endif
if ((j_p = iperf_cJSON_GetObjectItemType(j, "window", cJSON_Number)) != NULL)
test->settings->socket_bufsize = j_p->valueint;
if ((j_p = iperf_cJSON_GetObjectItemType(j, "len", cJSON_Number)) != NULL)
diff --git a/src/iperf_locale.c b/src/iperf_locale.c
index 32883da84..f1d89e298 100644
--- a/src/iperf_locale.c
+++ b/src/iperf_locale.c
@@ -128,6 +128,9 @@ const char usage_longstr[] = "Usage: iperf3 [-s|-c host] [options]\n"
" --snd-timeout # timeout for unacknowledged TCP data\n"
" (in ms, default is system settings)\n"
#endif /* HAVE_TCP_USER_TIMEOUT */
+#if defined(HAVE_IPPROTO_MPTCP)
+ " -m, --mptcp use MPTCP rather than plain TCP\n"
+#endif
" -d, --debug[=#] emit debugging output\n"
" (optional optional \"=\" and debug level: 1-4. Default is 4 - all messages)\n"
" -v, --version show version information and quit\n"
diff --git a/src/iperf_tcp.c b/src/iperf_tcp.c
index 481c09dc8..2c10d7df5 100644
--- a/src/iperf_tcp.c
+++ b/src/iperf_tcp.c
@@ -184,9 +184,10 @@ iperf_tcp_listen(struct iperf_test *test)
*
* It's not clear whether this is a requirement or a convenience.
*/
- if (test->no_delay || test->settings->mss || test->settings->socket_bufsize) {
+ if (test->no_delay || test->mptcp || test->settings->mss || test->settings->socket_bufsize) {
struct addrinfo hints, *res;
char portstr[6];
+ int proto = 0;
FD_CLR(s, &test->read_set);
close(s);
@@ -212,7 +213,12 @@ iperf_tcp_listen(struct iperf_test *test)
return -1;
}
- if ((s = socket(res->ai_family, SOCK_STREAM, 0)) < 0) {
+#if defined(HAVE_IPPROTO_MPTCP)
+ if (test->mptcp)
+ proto = IPPROTO_MPTCP;
+#endif
+
+ if ((s = socket(res->ai_family, SOCK_STREAM, proto)) < 0) {
freeaddrinfo(res);
i_errno = IESTREAMLISTEN;
return -1;
@@ -380,8 +386,14 @@ iperf_tcp_connect(struct iperf_test *test)
socklen_t optlen;
int saved_errno;
int rcvbuf_actual, sndbuf_actual;
+ int proto = 0;
+
+#if defined(HAVE_IPPROTO_MPTCP)
+ if (test->mptcp)
+ proto = IPPROTO_MPTCP;
+#endif
- s = create_socket(test->settings->domain, SOCK_STREAM, test->bind_address, test->bind_dev, test->bind_port, test->server_hostname, test->server_port, &server_res);
+ s = create_socket(test->settings->domain, SOCK_STREAM, proto, test->bind_address, test->bind_dev, test->bind_port, test->server_hostname, test->server_port, &server_res);
if (s < 0) {
i_errno = IESTREAMCONNECT;
return -1;
diff --git a/src/net.c b/src/net.c
index b693ea7fb..febf20885 100644
--- a/src/net.c
+++ b/src/net.c
@@ -124,7 +124,7 @@ timeout_connect(int s, const struct sockaddr *name, socklen_t namelen,
/* create a socket */
int
-create_socket(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out)
+create_socket(int domain, int type, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out)
{
struct addrinfo hints, *local_res = NULL, *server_res = NULL;
int s, saved_errno;
@@ -133,14 +133,14 @@ create_socket(int domain, int proto, const char *local, const char *bind_dev, in
if (local) {
memset(&hints, 0, sizeof(hints));
hints.ai_family = domain;
- hints.ai_socktype = proto;
+ hints.ai_socktype = type;
if ((gerror = getaddrinfo(local, NULL, &hints, &local_res)) != 0)
return -1;
}
memset(&hints, 0, sizeof(hints));
hints.ai_family = domain;
- hints.ai_socktype = proto;
+ hints.ai_socktype = type;
snprintf(portstr, sizeof(portstr), "%d", port);
if ((gerror = getaddrinfo(server, portstr, &hints, &server_res)) != 0) {
if (local)
@@ -148,7 +148,7 @@ create_socket(int domain, int proto, const char *local, const char *bind_dev, in
return -1;
}
- s = socket(server_res->ai_family, proto, 0);
+ s = socket(server_res->ai_family, type, proto);
if (s < 0) {
if (local)
freeaddrinfo(local_res);
@@ -238,7 +238,7 @@ netdial(int domain, int proto, const char *local, const char *bind_dev, int loca
struct addrinfo *server_res = NULL;
int s, saved_errno;
- s = create_socket(domain, proto, local, bind_dev, local_port, server, port, &server_res);
+ s = create_socket(domain, proto, 0, local, bind_dev, local_port, server, port, &server_res);
if (s < 0) {
return -1;
}
diff --git a/src/net.h b/src/net.h
index 859c52cef..fb78d289b 100644
--- a/src/net.h
+++ b/src/net.h
@@ -28,7 +28,7 @@
#define __NET_H
int timeout_connect(int s, const struct sockaddr *name, socklen_t namelen, int timeout);
-int create_socket(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out);
+int create_socket(int domain, int type, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, struct addrinfo **server_res_out);
int netdial(int domain, int proto, const char *local, const char *bind_dev, int local_port, const char *server, int port, int timeout);
int netannounce(int domain, int proto, const char *local, const char *bind_dev, int port);
int Nread(int fd, char *buf, size_t count, int prot);

View file

@ -0,0 +1,552 @@
From 197d8ba733f0502985abb5b0a22bf9f71c2596a7 Mon Sep 17 00:00:00 2001
From: David Bar-On <david.cdb004@gmail.com>
Date: Mon, 25 Mar 2024 22:11:49 +0200
Subject: [PATCH] Add SOCKS5 Proxy support for TCP
---
src/iperf.h | 8 ++
src/iperf_api.c | 250 ++++++++++++++++++++++++++++++++++++++++-
src/iperf_api.h | 13 ++-
src/iperf_client_api.c | 27 ++++-
src/iperf_error.c | 10 ++
src/iperf_locale.c | 2 +
src/iperf_tcp.c | 22 +++-
7 files changed, 323 insertions(+), 9 deletions(-)
diff --git a/src/iperf.h b/src/iperf.h
index dc3c0d1df..9823dc180 100644
--- a/src/iperf.h
+++ b/src/iperf.h
@@ -343,6 +343,14 @@ struct iperf_test
int timestamps; /* --timestamps */
char *timestamp_format;
+ char *socks5_host; /* --socks5 option */
+ uint16_t socks5_port; /* --socks5 option optional value */
+ char *socks5_username; /* --socks5 option optional value */
+ char *socks5_password; /* --socks5 option optional value */
+ char socks5_bind_atyp; /* from socks5 CONNECT response ATYP */
+ char *socks5_bind_host; /* from socks5 CONNECT response BIND.ADDR*/
+ uint16_t socks5_bind_port; /* from socks5 CONNECT response BIND.PORT */
+
char *json_output_string; /* rendered JSON output if json_output is set */
/* Select related parameters */
int max_fd;
diff --git a/src/iperf_api.c b/src/iperf_api.c
index 4765d4e97..ca47f708d 100644
--- a/src/iperf_api.c
+++ b/src/iperf_api.c
@@ -115,7 +115,7 @@ usage()
void
usage_long(FILE *f)
{
- fprintf(f, usage_longstr, DEFAULT_NO_MSG_RCVD_TIMEOUT, UDP_RATE / (1024*1024), DEFAULT_PACING_TIMER, DURATION, DEFAULT_TCP_BLKSIZE / 1024, DEFAULT_UDP_BLKSIZE);
+ fprintf(f, usage_longstr, DEFAULT_NO_MSG_RCVD_TIMEOUT, UDP_RATE / (1024*1024), DEFAULT_PACING_TIMER, DURATION, DEFAULT_TCP_BLKSIZE / 1024, DEFAULT_UDP_BLKSIZE, SOCKS5_DEFAULT_PORT);
}
@@ -1100,6 +1100,7 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
{"version6", no_argument, NULL, '6'},
{"tos", required_argument, NULL, 'S'},
{"dscp", required_argument, NULL, OPT_DSCP},
+ {"socks5", required_argument, NULL, OPT_SOCKS5},
{"extra-data", required_argument, NULL, OPT_EXTRA_DATA},
#if defined(HAVE_FLOWLABEL)
{"flowlabel", required_argument, NULL, 'L'},
@@ -1157,7 +1158,7 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
char* comma;
#endif /* HAVE_CPU_AFFINITY */
char* slash;
- char *p, *p1;
+ char *p, *p1, *p2;
struct xbind_entry *xbe;
double farg;
int rcv_timeout_in = 0;
@@ -1433,6 +1434,47 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
}
client_flag = 1;
break;
+ case OPT_SOCKS5: // Format: "[username:password@]<host addr/fqdn>[:port]"
+ if (strlen(optarg) <= 0) {
+ i_errno = IESOCKS5HOST;
+ return -1;
+ }
+ p1 = strtok(optarg, "@"); // p1 -> user:password
+ if (p1 == NULL) {
+ i_errno = IESOCKS5HOST;
+ return -1;
+ }
+ p = strtok(NULL, "@"); // p -> host[:port]
+ if (p == NULL) {
+ p = p1;
+ p1 = NULL;
+ }
+ p2 = strtok(p, ":"); // parse host[:port]
+ if (strlen(p2) <= 0) {
+ i_errno = IESOCKS5HOST;
+ return -1;
+ }
+ test->socks5_host = strdup(p2);
+ p2 = strtok(NULL, ":");
+ if (p2 && strlen(p2) > 0) {
+ test->socks5_port = atoi(p2);
+ }
+ if (p1) { // parse user:password
+ p2 = strtok(p1, ":");
+ if (strlen(p2) <= 0 || strlen(p2) > 255) {
+ i_errno = IESOCKS5HOST;
+ return -1;
+ }
+ test->socks5_username = strdup(p2);
+ p2 = strtok(NULL, ":");
+ if (!p2 || strlen(p2) <= 0 || strlen(p2) > 255) {
+ i_errno = IESOCKS5HOST;
+ return -1;
+ }
+ test->socks5_password = strdup(p2);
+ }
+ client_flag = 1;
+ break;
case OPT_EXTRA_DATA:
test->extra_data = strdup(optarg);
client_flag = 1;
@@ -1740,6 +1782,12 @@ iperf_parse_arguments(struct iperf_test *test, int argc, char **argv)
return -1;
}
+ // SOCKS5 Proxy is supported only for TCP
+ if(test->role == 'c' && test->socks5_host && test->protocol->id != Ptcp) {
+ i_errno = IESOCKS5RTCPONLY;
+ return -1;
+ }
+
if (blksize == 0) {
if (test->protocol->id == Pudp)
blksize = 0; /* try to dynamically determine from MSS */
@@ -2943,6 +2991,12 @@ iperf_defaults(struct iperf_test *testp)
testp->stats_interval = testp->reporter_interval = 1;
testp->num_streams = 1;
+ testp->socks5_host = NULL;
+ testp->socks5_port = SOCKS5_DEFAULT_PORT;
+ testp->socks5_username = NULL;
+ testp->socks5_password = NULL;
+ testp->socks5_bind_host = NULL;
+
testp->settings->domain = AF_UNSPEC;
testp->settings->unit_format = 'a';
testp->settings->socket_bufsize = 0; /* use autotuning */
@@ -3100,6 +3154,14 @@ iperf_free_test(struct iperf_test *test)
free(test->remote_congestion_used);
if (test->timestamp_format)
free(test->timestamp_format);
+ if (test->socks5_host)
+ free(test->socks5_host);
+ if (test->socks5_username)
+ free(test->socks5_username);
+ if (test->socks5_password)
+ free(test->socks5_password);
+ if (test->socks5_bind_host)
+ free(test->socks5_bind_host);
if (test->omit_timer != NULL)
tmr_cancel(test->omit_timer);
if (test->timer != NULL)
@@ -3289,6 +3351,23 @@ iperf_reset_test(struct iperf_test *test)
free(test->extra_data);
test->extra_data = NULL;
}
+ if (test->socks5_host) {
+ free(test->socks5_host);
+ test->socks5_host = NULL;
+ }
+ test->socks5_port = SOCKS5_DEFAULT_PORT;
+ if (test->socks5_username) {
+ free(test->socks5_username);
+ test->socks5_username = NULL;
+ }
+ if (test->socks5_password) {
+ free(test->socks5_password);
+ test->socks5_password = NULL;
+ }
+ if (test->socks5_bind_host) {
+ free(test->socks5_bind_host);
+ test->socks5_bind_host = NULL;
+ }
/* Free output line buffers, if any (on the server only) */
struct iperf_textline *t;
@@ -4614,6 +4693,173 @@ iperf_add_stream(struct iperf_test *test, struct iperf_stream *sp)
}
}
+/**************************************************************************/
+
+/* iperf_socks5_handshake
+ *
+ * Handshake with a SOCKS5 Proxy per RFC1928, RFC1929
+ */
+int
+iperf_socks5_handshake(struct iperf_test *test, int s) {
+ char req[1024];
+ char res[1024];
+ char selected_mthod;
+ char *p, *p1;
+ size_t len;
+ int ret;
+ uint16_t net_order_short;
+
+ // Send method selection request [RFC1928]
+ p = req;
+ *p++ = 5; // VERSION
+ if (test->socks5_username) // Number of METHODs supported
+ *p++ = 2;
+ else
+ *p++ = 1;
+ *p++ = 0; // NO AUTHENTICATION REQUIRED
+ if (test->socks5_username) *p++ = 2; // USERNAME/PASSWORD
+ if (Nwrite(s, req, p - req, Ptcp) < 0) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Writing SOCKS5 auth methods message failed\n");
+ return -1;
+ }
+
+ // Receive selected method
+ if (Nread(s, res, 2, Ptcp) != 2) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Reading selected SOCKS5 method message failed\n");
+ return -1;
+ }
+
+ selected_mthod = res[1];
+ if (res[0] != 5 || (selected_mthod != 0 && selected_mthod != 2)) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Ilegal SOCKS5 method selection response: version=%d, auth method=%d\n", res[0], selected_mthod);
+ return -1;
+ }
+ if (test->debug) {
+ iperf_printf(test, "SOCKS5 server selected authentication method %d\n", selected_mthod);
+ }
+
+ // Send Username/Password request and receive the auth response [RFC1929]
+ if (selected_mthod == 2) {
+ p = req;
+ *p++ = 1; // VERSION
+ len = strlen(test->socks5_username);
+ *p++ = len;
+ memcpy(p, test->socks5_username, len); // USERNAME
+ p += len;
+ len = strlen(test->socks5_password);
+ *p++ = len;
+ memcpy(p, test->socks5_password, len); // PASSWORD
+ p += len;
+
+ if (Nwrite(s, req, p - req, Ptcp) < 0) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Writing SOCKS5 Username/Password request message failed\n");
+ return -1;
+ }
+
+ if ((ret = Nread(s, res, 2, Ptcp)) != 2) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Reading SOCKS5 Username/Password response failed; Returned %d\n", ret);
+ return -1;
+ }
+ if (res[1] != 0) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "SOCKS5 Username/Password failed with error %d\n", res[1]);
+ return -1;
+ }
+ }
+
+ // Send CONNECT request [RFC1928]
+ p = req;
+ *p++ = 5; // VERSION
+ *p++ = 1; // CMD = CONNECT
+ *p++ = 0; // RESERVED
+ *p++ = 3; // ATYPE = DOMAINNAME:
+ len = strlen(test->server_hostname);
+ if (len > 255) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "iperf3 host option length is limited to 255 chars when SOCKS5 is used\n");
+ return -1;
+ }
+ *p++ = len;
+ memcpy(p, test->server_hostname, len); // ADDR
+ p += len;
+ net_order_short = htons(test->server_port);
+ p1 = (char *)&net_order_short;
+ *p++ = *p1++; // PORT
+ *p++ = *p1;
+ if (Nwrite(s, req, p - req, Ptcp) < 0) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Writing SOCKS5 CONNECT message failed\n");
+ return -1;
+ }
+
+ // Read CONNECT response [RFC1928]
+ if ((ret = Nread(s, res, 4, Ptcp)) != 4) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Reading SOCKS5 CONNECT response failed; Returned %d\n", ret);
+ return -1;
+ }
+
+ if (res[0] != 5 || res[1] != 0 || res[2] != 0) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "SOCKS5 CONNECT failed with error %d\n", res[1]);
+ return -1;
+ }
+
+ // Get BND.ADDR length
+ test->socks5_bind_atyp = res[3]; // ATYP
+ switch (test->socks5_bind_atyp) {
+ case 1: // IP V4 address
+ len = 4;
+ break;
+ case 3: // DOMAINNAME:
+ if ((ret = read(s, res, 1)) != 1) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Failed to read SOCKS5 CONNECT response BND.ADDR length; Returned %d\n", ret);
+ return -1;
+ }
+ len = (unsigned char)res[0];
+ break;
+ case 4: // IP V6 address
+ len = 16;
+ break;
+ default:
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Illegal SOCKS5 CONNECT response ATYP %d\n", res[3]);
+ return -1;
+ }
+ // Read BND.ADDR
+ if ((ret = Nread(s, res, len, Ptcp)) != len) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Failed to read SOCKS5 detailes BND.ADDR; Returned %d\n", ret);
+ return -1;
+ }
+ res[len] = '\0';
+ test->socks5_bind_host = strdup(res);
+ // Read BND.PORT
+ if ((ret = Nread(s, res, 2, Ptcp)) != 2) {
+ i_errno = IESOCKS5HANDSHAKE;
+ iperf_err(test, "Failed to read SOCKS5 detailes BND.PORT; Returned %d\n", ret);
+ return -1;
+ }
+ p1 = (char *)&net_order_short;
+ *p1++ = res[0];
+ *p1 = res[1];
+ test->socks5_bind_port = ntohs(net_order_short);
+ if (test->debug) {
+ iperf_printf(test, "SOCKS5 server BIND ADDR type=%d, PORT=%d\n", test->socks5_bind_atyp, test->socks5_bind_port);
+ }
+
+ return 0;
+}
+
+/**************************************************************************/
+
+
/* This pair of routines gets inserted into the snd/rcv function pointers
** when there's a -F flag. They handle the file stuff and call the real
** snd/rcv functions, which have been saved in snd2/rcv2.
diff --git a/src/iperf_api.h b/src/iperf_api.h
index d2bbdfe96..01d63bf5e 100644
--- a/src/iperf_api.h
+++ b/src/iperf_api.h
@@ -68,6 +68,7 @@ typedef atomic_uint_fast64_t atomic_iperf_size_t;
#define DEFAULT_PACING_TIMER 1000
#define DEFAULT_NO_MSG_RCVD_TIMEOUT 120000
#define MIN_NO_MSG_RCVD_TIMEOUT 100
+#define SOCKS5_DEFAULT_PORT 1080
#define WARN_STR_LEN 128
@@ -100,7 +101,8 @@ typedef atomic_uint_fast64_t atomic_iperf_size_t;
#define OPT_RCV_TIMEOUT 27
#define OPT_JSON_STREAM 28
#define OPT_SND_TIMEOUT 29
#define OPT_USE_PKCS1_PADDING 30
+#define OPT_SOCKS5 31
/* states */
#define TEST_START 1
@@ -308,6 +310,12 @@ void iperf_free_stream(struct iperf_stream * sp);
*/
int iperf_common_sockopts(struct iperf_test *, int s);
+/**
+ * iperf_socks5_handshake - handshake with a SOCKS5 Proxy per RFC1928, RFC1929
+ *
+ */
+int iperf_socks5_handshake(struct iperf_test *test, int s);
+
int has_tcpinfo(void);
int has_tcpinfo_retransmits(void);
void save_tcpinfo(struct iperf_stream *sp, struct iperf_interval_results *irp);
@@ -419,6 +427,8 @@ enum {
IESNDTIMEOUT = 33, // Illegal message send timeout
IEUDPFILETRANSFER = 34, // Cannot transfer file using UDP
IESERVERAUTHUSERS = 35, // Cannot access authorized users file
+ IESOCKS5HOST = 36, // Illegal SOCKS5 host / creadentials
+ IESOCKS5RTCPONLY = 37, // SOCKS5 Proxy is supported only for TCP
/* Test errors */
IENEWTEST = 100, // Unable to create a new test (check perror)
IEINITTEST = 101, // Test initialization failed (check perror)
@@ -473,8 +483,9 @@ enum {
IEPTHREADCANCEL=151, // Unable to cancel thread (check perror)
IEPTHREADJOIN=152, // Unable to join thread (check perror)
IEPTHREADATTRINIT=153, // Unable to initialize thread attribute (check perror)
IEPTHREADATTRDESTROY=154, // Unable to destroy thread attribute (check perror)
IEPTHREADSIGMASK=155, // Unable to initialize sub thread signal mask (check perror)
+ IESOCKS5HANDSHAKE = 156, // SOCKS5 Handshake with the server failed
/* Stream errors */
IECREATESTREAM = 200, // Unable to create a new stream (check herror/perror)
IEINITSTREAM = 201, // Unable to initialize stream (check herror/perror)
diff --git a/src/iperf_client_api.c b/src/iperf_client_api.c
index 7ad4c939b..670e3521d 100644
--- a/src/iperf_client_api.c
+++ b/src/iperf_client_api.c
@@ -385,6 +385,8 @@ iperf_connect(struct iperf_test *test)
{
int opt;
socklen_t len;
+ const char *connect_server;
+ int connect_port;
if (NULL == test)
{
@@ -397,12 +399,20 @@ iperf_connect(struct iperf_test *test)
make_cookie(test->cookie);
/* Create and connect the control channel */
- if (test->ctrl_sck < 0)
- // Create the control channel using an ephemeral port
- test->ctrl_sck = netdial(test->settings->domain, Ptcp, test->bind_address, test->bind_dev, 0, test->server_hostname, test->server_port, test->settings->connect_timeout);
if (test->ctrl_sck < 0) {
- i_errno = IECONNECT;
- return -1;
+ if (test->socks5_host) {
+ connect_server = test->socks5_host;
+ connect_port = test->socks5_port;
+ } else {
+ connect_server = test->server_hostname;
+ connect_port = test->server_port;
+ }
+ // Create the control channel using an ephemeral port
+ test->ctrl_sck = netdial(test->settings->domain, Ptcp, test->bind_address, test->bind_dev, 0, connect_server, connect_port, test->settings->connect_timeout);
+ if (test->ctrl_sck < 0) {
+ i_errno = IECONNECT;
+ return -1;
+ }
}
// set TCP_NODELAY for lower latency on control messages
@@ -421,6 +431,13 @@ iperf_connect(struct iperf_test *test)
}
#endif /* HAVE_TCP_USER_TIMEOUT */
+ /* socks5 proxy handshake */
+ if (test->socks5_host) {
+ if (0 != iperf_socks5_handshake(test, test->ctrl_sck)) {
+ return -1;
+ }
+ }
+
if (Nwrite(test->ctrl_sck, test->cookie, COOKIE_SIZE, Ptcp) < 0) {
i_errno = IESENDCOOKIE;
return -1;
diff --git a/src/iperf_error.c b/src/iperf_error.c
index 6426554cf..a0bbb6844 100644
--- a/src/iperf_error.c
+++ b/src/iperf_error.c
@@ -216,6 +216,9 @@ iperf_strerror(int int_errno)
case IEUNIMP:
snprintf(errstr, len, "an option you are trying to set is not implemented yet");
break;
+ case IESOCKS5HOST:
+ snprintf(errstr, len, "ilegal SOCKS5 host / creadentials");
+ break;
case IEFILE:
snprintf(errstr, len, "unable to open -F file");
perr = 1;
@@ -375,6 +378,9 @@ iperf_strerror(int int_errno)
case IEUDPFILETRANSFER:
snprintf(errstr, len, "cannot transfer file using UDP");
break;
+ case IESOCKS5RTCPONLY:
+ snprintf(errstr, len, "SOCKS5 Proxy is supported only for TCP");
+ break;
case IERVRSONLYRCVTIMEOUT:
snprintf(errstr, len, "client receive timeout is valid only in receiving mode");
perr = 1;
@@ -507,6 +513,10 @@ iperf_strerror(int int_errno)
snprintf(errstr, len, "unable to destroy thread attributes");
perr = 1;
break;
+ case IESOCKS5HANDSHAKE:
+ snprintf(errstr, len, "socks5 Handshake with the server failed");
+ perr = 1;
+ break;
default:
snprintf(errstr, len, "int_errno=%d", int_errno);
perr = 1;
diff --git a/src/iperf_locale.c b/src/iperf_locale.c
index ae0f63a41..c8b9a71d1 100644
--- a/src/iperf_locale.c
+++ b/src/iperf_locale.c
@@ -194,6 +194,8 @@ const char usage_longstr[] = "Usage: iperf3 [-s|-c host] [options]\n"
" --dscp N or --dscp val set the IP dscp value, either 0-63 or symbolic.\n"
" Numeric values can be specified in decimal,\n"
" octal and hex (see --tos above).\n"
+ " --socks5 [user:password@]<proxy-host>[:port] use SOCKS5 Proxy for TCP connections,\n"
+ " using no auth or user:password. Default Proxy port is %d \n"
#if defined(HAVE_FLOWLABEL)
" -L, --flowlabel N set the IPv6 flow label (only supported on Linux)\n"
#endif /* HAVE_FLOWLABEL */
diff --git a/src/iperf_tcp.c b/src/iperf_tcp.c
index 184a1955e..515913581 100644
--- a/src/iperf_tcp.c
+++ b/src/iperf_tcp.c
@@ -375,14 +375,24 @@ iperf_tcp_connect(struct iperf_test *test)
socklen_t optlen;
int saved_errno;
int rcvbuf_actual, sndbuf_actual;
int proto = 0;
+ const char *connect_server;
+ int connect_port;
#if defined(HAVE_IPPROTO_MPTCP)
if (test->mptcp)
proto = IPPROTO_MPTCP;
#endif
- s = create_socket(test->settings->domain, SOCK_STREAM, proto, test->bind_address, test->bind_dev, test->bind_port, test->server_hostname, test->server_port, &server_res);
+ if (test->socks5_host) {
+ connect_server = test->socks5_host;
+ connect_port = test->socks5_port;
+ } else {
+ connect_server = test->server_hostname;
+ connect_port = test->server_port;
+ }
+
+ s = create_socket(test->settings->domain, SOCK_STREAM, proto, test->bind_address, test->bind_dev, test->bind_port, connect_server, connect_port, &server_res);
if (s < 0) {
i_errno = IESTREAMCONNECT;
return -1;
@@ -571,6 +581,16 @@ iperf_tcp_connect(struct iperf_test *test)
freeaddrinfo(server_res);
+ /* socks5 proxy handshake */
+ if (test->socks5_host) {
+ if (0 != iperf_socks5_handshake(test, s)) {
+ saved_errno = errno;
+ close(s);
+ errno = saved_errno;
+ return -1;
+ }
+ }
+
/* Send cookie for verification */
if (Nwrite(s, test->cookie, COOKIE_SIZE, Ptcp) < 0) {
saved_errno = errno;

268
iproute2/Makefile Normal file
View file

@ -0,0 +1,268 @@
#
# Copyright (C) 2006-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2
PKG_VERSION:=6.12.0
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
PKG_HASH:=bbd141ef7b5d0127cc2152843ba61f274dc32814fa3e0f13e7d07a080bef53d9
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=iptables
PKG_LICENSE:=GPL-2.0
PKG_CPE_ID:=cpe:/a:iproute2_project:iproute2
PKG_BUILD_FLAGS:=gc-sections lto
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/iproute2/Default
SECTION:=net
CATEGORY:=Network
URL:=http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
SUBMENU:=Routing and Redirection
MAINTAINER:=Russell Senior <russell@personaltelco.net>
endef
define Package/ip-tiny
$(call Package/iproute2/Default)
TITLE:=Routing control utility (minimal)
VARIANT:=iptiny
DEFAULT_VARIANT:=1
PROVIDES:=ip
ALTERNATIVES:=200:/sbin/ip:/usr/libexec/ip-tiny
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ip-full
$(call Package/iproute2/Default)
TITLE:=Routing control utility (full)
VARIANT:=ipfull
PROVIDES:=ip
ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full
DEPENDS:=+libnl-tiny +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc-tiny
$(call Package/iproute2/Default)
TITLE:=Traffic control utility (minimal)
VARIANT:=tctiny
DEFAULT_VARIANT:=1
PROVIDES:=tc
ALTERNATIVES:=200:/sbin/tc:/usr/libexec/tc-tiny
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc-bpf
$(call Package/iproute2/Default)
TITLE:=Traffic control utility (bpf)
VARIANT:=tcbpf
PROVIDES:=tc
ALTERNATIVES:=300:/sbin/tc:/usr/libexec/tc-bpf
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf
endef
define Package/tc-full
$(call Package/iproute2/Default)
TITLE:=Traffic control utility (full)
VARIANT:=tcfull
PROVIDES:=tc
ALTERNATIVES:=400:/sbin/tc:/usr/libexec/tc-full
DEPENDS:=+kmod-sched-core +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +libxtables
endef
define Package/genl
$(call Package/iproute2/Default)
TITLE:=General netlink utility frontend
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ip-bridge
$(call Package/iproute2/Default)
TITLE:=Bridge configuration utility from iproute2
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ss
$(call Package/iproute2/Default)
TITLE:=Socket statistics utility
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl +libbpf +kmod-netlink-diag
endef
define Package/nstat
$(call Package/iproute2/Default)
TITLE:=Network statistics utility
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/devlink
$(call Package/iproute2/Default)
TITLE:=Network devlink utility
DEPENDS:=+libmnl
endef
define Package/rdma
$(call Package/iproute2/Default)
TITLE:=Network rdma utility
DEPENDS:=+libmnl
endef
ifeq ($(BUILD_VARIANT),iptiny)
IP_CONFIG_TINY:=y
LIBBPF_FORCE:=off
endif
ifeq ($(BUILD_VARIANT),ipfull)
HAVE_ELF:=y
LIBBPF_FORCE:=on
endif
ifeq ($(BUILD_VARIANT),tctiny)
LIBBPF_FORCE:=off
endif
ifeq ($(BUILD_VARIANT),tcbpf)
HAVE_ELF:=y
LIBBPF_FORCE:=on
SHARED_LIBS:=y
endif
ifeq ($(BUILD_VARIANT),tcfull)
#enable iptables/xtables requirement only if tciptables variant is selected
TC_CONFIG_XT:=y
TC_CONFIG_XT_OLD:=y
TC_CONFIG_XT_OLD_H:=y
TC_CONFIG_IPSET:=y
HAVE_ELF:=y
LIBBPF_FORCE:=on
SHARED_LIBS:=y
else
#disable iptables requirement by default
TC_CONFIG_XT:=n
TC_CONFIG_XT_OLD:=n
TC_CONFIG_XT_OLD_H:=n
TC_CONFIG_IPSET:=n
endif
ifdef CONFIG_PACKAGE_devlink
HAVE_MNL:=y
endif
ifdef CONFIG_PACKAGE_rdma
HAVE_MNL:=y
endif
define Build/Configure
echo "static const char SNAPSHOT[] = \"$(PKG_VERSION)-$(PKG_RELEASE)-openwrt\";" \
> $(PKG_BUILD_DIR)/include/SNAPSHOT.h
endef
TARGET_LDFLAGS += -Wl,--as-needed
TARGET_CPPFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
MAKE_FLAGS += \
KERNEL_INCLUDE="$(LINUX_DIR)/include/uapi" \
SHARED_LIBS=$(SHARED_LIBS) \
IP_CONFIG_TINY=$(IP_CONFIG_TINY) \
BUILD_VARIANT=$(BUILD_VARIANT) \
LIBBPF_FORCE=$(LIBBPF_FORCE) \
HAVE_ELF=$(HAVE_ELF) \
HAVE_MNL=$(HAVE_MNL) \
HAVE_CAP=$(HAVE_CAP) \
HAVE_TIRPC=n \
IPT_LIB_DIR=/usr/lib/iptables \
XT_LIB_DIR=/usr/lib/iptables \
TC_CONFIG_XT=$(TC_CONFIG_XT) \
TC_CONFIG_XT_OLD=$(TC_CONFIG_XT_OLD) \
TC_CONFIG_XT_OLD_H=$(TC_CONFIG_XT_OLD_H) \
TC_CONFIG_IPSET=$(TC_CONFIG_IPSET) \
FPIC="$(FPIC)" \
$(if $(findstring c,$(OPENWRT_VERBOSE)),V=1,V='')
define Build/Compile
+$(MAKE_VARS) $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/iproute2
$(CP) $(PKG_BUILD_DIR)/include/bpf_elf.h $(1)/usr/include/iproute2
$(CP) $(PKG_BUILD_DIR)/include/{libgenl,libnetlink}.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/libnetlink.a $(1)/usr/lib/
endef
define Package/ip-tiny/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-tiny
endef
define Package/ip-full/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-full
endef
define Package/tc-tiny/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-tiny
endef
define Package/tc-bpf/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-bpf
endef
define Package/tc-full/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-full
endef
define Package/genl/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/genl/genl $(1)/usr/sbin/
endef
define Package/ip-bridge/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bridge/bridge $(1)/usr/sbin/
endef
define Package/ss/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/misc/ss $(1)/usr/sbin/
endef
define Package/nstat/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/misc/nstat $(1)/usr/sbin/
endef
define Package/devlink/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/devlink/devlink $(1)/usr/sbin/
endef
define Package/rdma/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rdma/rdma $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,ip-tiny))
$(eval $(call BuildPackage,ip-full))
$(eval $(call BuildPackage,tc-tiny))
$(eval $(call BuildPackage,tc-bpf))
$(eval $(call BuildPackage,tc-full))
$(eval $(call BuildPackage,genl))
$(eval $(call BuildPackage,ip-bridge))
$(eval $(call BuildPackage,ss))
$(eval $(call BuildPackage,nstat))
$(eval $(call BuildPackage,devlink))
$(eval $(call BuildPackage,rdma))

View file

@ -0,0 +1,22 @@
From c8b3ecc22ed0edaf0259eaf7d1a5c04f300ad6e4 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 12 Dec 2024 11:24:18 -0800
Subject: [PATCH] libnetlink: add missing endian.h
Need endian.h to get htobe64 with musl.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
include/libnetlink.h | 1 +
1 file changed, 1 insertion(+)
--- a/include/libnetlink.h
+++ b/include/libnetlink.h
@@ -4,6 +4,7 @@
#include <stdio.h>
#include <string.h>
+#include <endian.h>
#include <asm/types.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>

View file

@ -0,0 +1,29 @@
From fa3949b792e275f75d7d6200dc2036ef7fff8816 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 12 Dec 2024 11:21:56 -0800
Subject: [PATCH] rdma: add missing header for basename
The function basename prototype is in libgen.h
Fixes build on musl
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
rdma/rdma.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/rdma/rdma.h
+++ b/rdma/rdma.h
@@ -10,11 +10,12 @@
#include <string.h>
#include <errno.h>
#include <getopt.h>
+#include <time.h>
+#include <libgen.h>
#include <netinet/in.h>
#include <libmnl/libmnl.h>
#include <rdma/rdma_netlink.h>
#include <rdma/rdma_user_cm.h>
-#include <time.h>
#include <net/if_arp.h>
#include "list.h"

View file

@ -0,0 +1,84 @@
From 7e23da91fca6e5dedeb32a7d308cf20982e897c3 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 10 Dec 2024 13:38:08 -0800
Subject: [PATCH] ip: rearrange and prune header files
The recent report of issues with missing limits.h impacting musl
suggested looking at what files are and are not included in ip code.
The standard practice is to put standard headers first, then system,
then local headers. Used iwyu to get suggestions about missing
and extraneous headers.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
ip/iplink.c | 13 +++++--------
ip/ipnetns.c | 19 +++++++++----------
2 files changed, 14 insertions(+), 18 deletions(-)
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -11,17 +11,14 @@
#include <fcntl.h>
#include <dlfcn.h>
#include <errno.h>
+#include <string.h>
+#include <strings.h>
+#include <limits.h>
+
#include <sys/socket.h>
+#include <arpa/inet.h>
#include <linux/if.h>
-#include <linux/if_packet.h>
#include <linux/if_ether.h>
-#include <linux/sockios.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <stdbool.h>
-#include <linux/mpls.h>
#include "rt_names.h"
#include "utils.h"
--- a/ip/ipnetns.c
+++ b/ip/ipnetns.c
@@ -1,21 +1,21 @@
/* SPDX-License-Identifier: GPL-2.0 */
#define _ATFILE_SOURCE
-#include <sys/file.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/inotify.h>
-#include <sys/mount.h>
-#include <sys/syscall.h>
+
#include <stdio.h>
+#include <stdint.h>
#include <string.h>
-#include <sched.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <unistd.h>
#include <ctype.h>
-#include <linux/limits.h>
+#include <limits.h>
+
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/inotify.h>
+#include <sys/mount.h>
#include <linux/net_namespace.h>
@@ -23,7 +23,6 @@
#include "list.h"
#include "ip_common.h"
#include "namespace.h"
-#include "json_print.h"
static int usage(void)
{

View file

@ -0,0 +1,26 @@
From f982f30e166a02e09097de05129449031ba51f76 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 12 Dec 2024 11:29:44 -0800
Subject: [PATCH] cg_map: use limits.h
Prefer limits.h from system headers over linux/limits.h
Fixes build with musl.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
lib/cg_map.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/lib/cg_map.c
+++ b/lib/cg_map.c
@@ -9,8 +9,9 @@
#include <string.h>
#include <stdio.h>
#include <stdbool.h>
+#include <limits.h>
+
#include <linux/types.h>
-#include <linux/limits.h>
#include <ftw.h>
#include "cg_map.h"

View file

@ -0,0 +1,178 @@
From ac547ad027e3d4e283202ecb487cf54707234491 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 12 Dec 2024 14:15:59 -0800
Subject: [PATCH] flower: replace XATTR_SIZE_MAX
The flower tc parser was using XATTR_SIZE_MAX from linux/limits.h,
but this constant is intended to before extended filesystem attributes
not for TC. Replace it with a local define.
This fixes issue on systems with musl and XATTR_SIZE_MAX is not
defined in limits.h there.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
tc/f_flower.c | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
--- a/tc/f_flower.c
+++ b/tc/f_flower.c
@@ -10,7 +10,7 @@
#include <unistd.h>
#include <string.h>
#include <net/if.h>
-#include <linux/limits.h>
+
#include <linux/if_arp.h>
#include <linux/if_ether.h>
#include <linux/ip.h>
@@ -22,6 +22,9 @@
#include "tc_util.h"
#include "rt_names.h"
+/* maximum length of options string */
+#define FLOWER_OPTS_MAX 4096
+
#ifndef IPPROTO_L2TP
#define IPPROTO_L2TP 115
#endif
@@ -1252,7 +1255,7 @@ static int flower_check_enc_opt_key(char
static int flower_parse_enc_opts_geneve(char *str, struct nlmsghdr *n)
{
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
int data_len, key_len, mask_len, err;
char *token, *slash;
struct rtattr *nest;
@@ -1265,7 +1268,7 @@ static int flower_parse_enc_opts_geneve(
if (slash)
*slash = '\0';
- if ((key_len + strlen(token) > XATTR_SIZE_MAX) ||
+ if ((key_len + strlen(token) > FLOWER_OPTS_MAX) ||
flower_check_enc_opt_key(token))
return -1;
@@ -1275,7 +1278,7 @@ static int flower_parse_enc_opts_geneve(
if (!slash) {
/* Pad out mask when not provided */
- if (mask_len + strlen(token) > XATTR_SIZE_MAX)
+ if (mask_len + strlen(token) > FLOWER_OPTS_MAX)
return -1;
data_len = strlen(rindex(token, ':'));
@@ -1288,7 +1291,7 @@ static int flower_parse_enc_opts_geneve(
continue;
}
- if (mask_len + strlen(slash + 1) > XATTR_SIZE_MAX)
+ if (mask_len + strlen(slash + 1) > FLOWER_OPTS_MAX)
return -1;
strcpy(&mask[mask_len], slash + 1);
@@ -1318,7 +1321,7 @@ static int flower_parse_enc_opts_geneve(
static int flower_parse_enc_opts_vxlan(char *str, struct nlmsghdr *n)
{
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
struct rtattr *nest;
char *slash;
int err;
@@ -1326,14 +1329,14 @@ static int flower_parse_enc_opts_vxlan(c
slash = strchr(str, '/');
if (slash) {
*slash++ = '\0';
- if (strlen(slash) > XATTR_SIZE_MAX)
+ if (strlen(slash) > FLOWER_OPTS_MAX)
return -1;
strcpy(mask, slash);
} else {
strcpy(mask, "0xffffffff");
}
- if (strlen(str) > XATTR_SIZE_MAX)
+ if (strlen(str) > FLOWER_OPTS_MAX)
return -1;
strcpy(key, str);
@@ -1355,7 +1358,7 @@ static int flower_parse_enc_opts_vxlan(c
static int flower_parse_enc_opts_erspan(char *str, struct nlmsghdr *n)
{
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
struct rtattr *nest;
char *slash;
int err;
@@ -1364,7 +1367,7 @@ static int flower_parse_enc_opts_erspan(
slash = strchr(str, '/');
if (slash) {
*slash++ = '\0';
- if (strlen(slash) > XATTR_SIZE_MAX)
+ if (strlen(slash) > FLOWER_OPTS_MAX)
return -1;
strcpy(mask, slash);
} else {
@@ -1376,7 +1379,7 @@ static int flower_parse_enc_opts_erspan(
strcpy(mask + index, ":0xffffffff:0xff:0xff");
}
- if (strlen(str) > XATTR_SIZE_MAX)
+ if (strlen(str) > FLOWER_OPTS_MAX)
return -1;
strcpy(key, str);
@@ -1398,7 +1401,7 @@ static int flower_parse_enc_opts_erspan(
static int flower_parse_enc_opts_gtp(char *str, struct nlmsghdr *n)
{
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
struct rtattr *nest;
char *slash;
int err;
@@ -1406,13 +1409,13 @@ static int flower_parse_enc_opts_gtp(cha
slash = strchr(str, '/');
if (slash) {
*slash++ = '\0';
- if (strlen(slash) > XATTR_SIZE_MAX)
+ if (strlen(slash) > FLOWER_OPTS_MAX)
return -1;
strcpy(mask, slash);
} else
strcpy(mask, "ff:ff");
- if (strlen(str) > XATTR_SIZE_MAX)
+ if (strlen(str) > FLOWER_OPTS_MAX)
return -1;
strcpy(key, str);
@@ -1433,7 +1436,7 @@ static int flower_parse_enc_opts_gtp(cha
static int flower_parse_enc_opts_pfcp(char *str, struct nlmsghdr *n)
{
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
struct rtattr *nest;
char *slash;
int err;
@@ -1442,14 +1445,14 @@ static int flower_parse_enc_opts_pfcp(ch
slash = strchr(str, '/');
if (slash) {
*slash++ = '\0';
- if (strlen(slash) > XATTR_SIZE_MAX)
+ if (strlen(slash) > FLOWER_OPTS_MAX)
return -1;
strcpy(mask, slash);
} else {
strcpy(mask, "ff:ffffffffffffffff");
}
- if (strlen(str) > XATTR_SIZE_MAX)
+ if (strlen(str) > FLOWER_OPTS_MAX)
return -1;
strcpy(key, str);

View file

@ -0,0 +1,37 @@
From 458dce5d0431f0589aca1bc841904b5d1db3bbce Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 12 Dec 2024 14:18:35 -0800
Subject: [PATCH] uapi: remove no longer used linux/limits.h
Code is now using limits.h instead.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
include/uapi/linux/limits.h | 21 ---------------------
1 file changed, 21 deletions(-)
delete mode 100644 include/uapi/linux/limits.h
--- a/include/uapi/linux/limits.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _LINUX_LIMITS_H
-#define _LINUX_LIMITS_H
-
-#define NR_OPEN 1024
-
-#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
-#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
-#define LINK_MAX 127 /* # links a file may have */
-#define MAX_CANON 255 /* size of the canonical input queue */
-#define MAX_INPUT 255 /* size of the type-ahead buffer */
-#define NAME_MAX 255 /* # chars in a file name */
-#define PATH_MAX 4096 /* # chars in a path name including nul */
-#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
-#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
-#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
-#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
-
-#define RTSIG_MAX 32
-
-#endif

View file

@ -0,0 +1,59 @@
--- a/netem/maketable.c
+++ b/netem/maketable.c
@@ -11,7 +11,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <malloc.h>
+#endif
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
--- a/netem/normal.c
+++ b/netem/normal.c
@@ -9,8 +9,12 @@
#include <string.h>
#include <limits.h>
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <linux/types.h>
#include <linux/pkt_sched.h>
+#else
+#define NETEM_DIST_SCALE 8192
+#endif
#define TABLESIZE 16384
#define TABLEFACTOR NETEM_DIST_SCALE
--- a/netem/pareto.c
+++ b/netem/pareto.c
@@ -8,8 +8,12 @@
#include <math.h>
#include <limits.h>
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <linux/types.h>
#include <linux/pkt_sched.h>
+#else
+#define NETEM_DIST_SCALE 8192
+#endif
static const double a=3.0;
#define TABLESIZE 16384
--- a/netem/paretonormal.c
+++ b/netem/paretonormal.c
@@ -15,10 +15,13 @@
#include <string.h>
#include <math.h>
#include <limits.h>
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
#include <malloc.h>
-
#include <linux/types.h>
#include <linux/pkt_sched.h>
+#else
+#define NETEM_DIST_SCALE 8192
+#endif
#define TABLESIZE 16384
#define TABLEFACTOR NETEM_DIST_SCALE

View file

@ -0,0 +1,12 @@
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -107,6 +107,9 @@ CFLAGS += -DCONFIG_GACT -DCONFIG_GACT_PR
ifneq ($(IPT_LIB_DIR),)
CFLAGS += -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\"
endif
+ifneq ($(XT_LIB_DIR),)
+ CFLAGS += -DXT_LIB_DIR=\"$(XT_LIB_DIR)\"
+endif
LEX := flex
CFLAGS += -DYY_NO_INPUT

View file

@ -0,0 +1,20 @@
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -2,13 +2,13 @@
SSOBJ=ss.o ssfilter_check.o ssfilter.tab.o
LNSTATOBJ=lnstat.o lnstat_util.o
-TARGETS=ss nstat ifstat rtacct lnstat
+TARGETS=ss nstat
include ../config.mk
-ifeq ($(HAVE_BERKELEY_DB),y)
- TARGETS += arpd
-endif
+#ifeq ($(HAVE_BERKELEY_DB),y)
+# TARGETS += arpd
+#endif
all: $(TARGETS)

View file

@ -0,0 +1,14 @@
--- a/Makefile
+++ b/Makefile
@@ -69,9 +69,9 @@ WFLAGS += -Wmissing-declarations -Wold-s
CFLAGS := $(WFLAGS) $(CCOPTS) -I../include -I../include/uapi $(DEFINES) $(CFLAGS)
YACCFLAGS = -d -t -v
-SUBDIRS=lib ip tc bridge misc netem genl man
+SUBDIRS=lib ip tc bridge misc genl
ifeq ($(HAVE_MNL),y)
-SUBDIRS += tipc devlink rdma dcb vdpa
+SUBDIRS += devlink rdma
endif
LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a

View file

@ -0,0 +1,9 @@
--- a/tc/q_fifo.c
+++ b/tc/q_fifo.c
@@ -90,5 +90,6 @@ struct qdisc_util pfifo_head_drop_qdisc_
struct qdisc_util pfifo_fast_qdisc_util = {
.id = "pfifo_fast",
+ .parse_qopt = fifo_parse_opt,
.print_qopt = prio_print_opt,
};

View file

@ -0,0 +1,11 @@
--- a/configure
+++ b/configure
@@ -368,7 +368,7 @@ check_tirpc()
check_mnl()
{
- if ${PKG_CONFIG} libmnl --exists; then
+ if [ "${HAVE_MNL}" = "y" ] && ${PKG_CONFIG} libmnl --exists; then
echo "HAVE_MNL:=y" >>$CONFIG
echo "yes"

View file

@ -0,0 +1,11 @@
--- a/configure
+++ b/configure
@@ -217,7 +217,7 @@ EOF
check_elf()
{
- if ${PKG_CONFIG} libelf --exists; then
+ if [ "${HAVE_ELF}" = "y" ] && ${PKG_CONFIG} libelf --exists; then
echo "HAVE_ELF:=y" >>$CONFIG
echo "yes"

View file

@ -0,0 +1,11 @@
--- a/configure
+++ b/configure
@@ -427,7 +427,7 @@ EOF
check_cap()
{
- if ${PKG_CONFIG} libcap --exists; then
+ if [ "${HAVE_CAP}" = "y" ] && ${PKG_CONFIG} libcap --exists; then
echo "HAVE_CAP:=y" >>$CONFIG
echo "yes"

View file

@ -0,0 +1,11 @@
--- a/configure
+++ b/configure
@@ -355,7 +355,7 @@ check_selinux()
check_tirpc()
{
- if ${PKG_CONFIG} libtirpc --exists; then
+ if [ "${HAVE_TIRPC}" = "y" ] && ${PKG_CONFIG} libtirpc --exists; then
echo "HAVE_RPC:=y" >>$CONFIG
echo "yes"

View file

@ -0,0 +1,11 @@
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
include ../config.mk
-CFLAGS += -fPIC
+CFLAGS += $(FPIC)
UTILOBJ = utils.o utils_math.o rt_names.o ll_map.o ll_types.o ll_proto.o ll_addr.o \
inet_proto.o namespace.o json_writer.o json_print.o json_print_math.o \

View file

@ -0,0 +1,108 @@
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -19,6 +19,13 @@ RTMONOBJ=rtmon.o
include ../config.mk
+STATIC_SYM_FILTER:=
+ifeq ($(IP_CONFIG_TINY),y)
+ STATIC_SYM_FILTER:=iplink_can.c iplink_ipoib.c iplink_vxlan.c
+ CFLAGS += -DIPROUTE2_TINY
+endif
+STATIC_SYM_SOURCES:=$(filter-out $(STATIC_SYM_FILTER),$(wildcard *.c))
+
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
SCRIPTS=routel
TARGETS=ip rtmon
@@ -48,7 +55,7 @@ else
ip: static-syms.o
static-syms.o: static-syms.h
-static-syms.h: $(wildcard *.c)
+static-syms.h: $(STATIC_SYM_SOURCES)
files="$^" ; \
for s in `grep -B 3 '\<dlsym' $$files | sed -n '/snprintf/{s:.*"\([^"]*\)".*:\1:;s:%s::;p}'` ; do \
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
--- a/ip/ip.c
+++ b/ip/ip.c
@@ -61,11 +61,17 @@ static void usage(void)
fprintf(stderr,
"Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n"
" ip [ -force ] -batch filename\n"
+#ifndef IPROUTE2_TINY
"where OBJECT := { address | addrlabel | fou | help | ila | ioam | l2tp | link |\n"
" macsec | maddress | monitor | mptcp | mroute | mrule |\n"
" neighbor | neighbour | netconf | netns | nexthop | ntable |\n"
" ntbl | route | rule | sr | stats | tap | tcpmetrics |\n"
" token | tunnel | tuntap | vrf | xfrm }\n"
+#else
+ "where OBJECT := { address | help | link | maddress | monitor |\n"
+ " neighbor | neighbour | netns | route |\n"
+ " rule | stats | token | tunnel }\n"
+#endif
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
" -h[uman-readable] | -iec | -j[son] | -p[retty] |\n"
" -f[amily] { inet | inet6 | mpls | bridge | link } |\n"
@@ -88,37 +94,49 @@ static const struct cmd {
int (*func)(int argc, char **argv);
} cmds[] = {
{ "address", do_ipaddr },
+#ifndef IPROUTE2_TINY
{ "addrlabel", do_ipaddrlabel },
+#endif
{ "maddress", do_multiaddr },
{ "route", do_iproute },
{ "rule", do_iprule },
{ "neighbor", do_ipneigh },
{ "neighbour", do_ipneigh },
+#ifndef IPROUTE2_TINY
{ "ntable", do_ipntable },
{ "ntbl", do_ipntable },
+#endif
{ "link", do_iplink },
+#ifndef IPROUTE2_TINY
{ "l2tp", do_ipl2tp },
{ "fou", do_ipfou },
{ "ila", do_ipila },
{ "macsec", do_ipmacsec },
+#endif
{ "tunnel", do_iptunnel },
{ "tunl", do_iptunnel },
+#ifndef IPROUTE2_TINY
{ "tuntap", do_iptuntap },
{ "tap", do_iptuntap },
{ "token", do_iptoken },
{ "tcpmetrics", do_tcp_metrics },
{ "tcp_metrics", do_tcp_metrics },
+#endif
{ "monitor", do_ipmonitor },
+#ifndef IPROUTE2_TINY
{ "xfrm", do_xfrm },
{ "mroute", do_multiroute },
{ "mrule", do_multirule },
+#endif
{ "netns", do_netns },
+#ifndef IPROUTE2_TINY
{ "netconf", do_ipnetconf },
{ "vrf", do_ipvrf},
{ "sr", do_seg6 },
{ "nexthop", do_ipnh },
{ "mptcp", do_mptcp },
{ "ioam", do_ioam6 },
+#endif
{ "help", do_help },
{ "stats", do_ipstats },
{ 0 }
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -3,6 +3,10 @@ include ../config.mk
CFLAGS += $(FPIC)
+ifeq ($(IP_CONFIG_TINY),y)
+ CFLAGS += -DIPROUTE2_TINY
+endif
+
UTILOBJ = utils.o utils_math.o rt_names.o ll_map.o ll_types.o ll_proto.o ll_addr.o \
inet_proto.o namespace.o json_writer.o json_print.o json_print_math.o \
names.o color.o bpf_legacy.o bpf_glue.o exec.o fs.o cg_map.o ppp_proto.o

View file

@ -0,0 +1,41 @@
From 4e7dbf76227e8c7be7897dc81def3011f637864d Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jogo@openwrt.org>
Date: Thu, 30 May 2013 11:54:04 +0200
Subject: [PATCH] add support for dropping with FAILED_POLICY
---
include/linux/fib_rules.h | 4 ++++
include/linux/rtnetlink.h | 1 +
ip/rtm_map.c | 4 ++++
3 files changed, 9 insertions(+)
--- a/ip/rtm_map.c
+++ b/ip/rtm_map.c
@@ -49,6 +49,8 @@ char *rtnl_rtntype_n2a(int id, char *buf
return "nat";
case RTN_XRESOLVE:
return "xresolve";
+ case RTN_FAILED_POLICY:
+ return "failed_policy";
default:
snprintf(buf, len, "%d", id);
return buf;
@@ -84,6 +86,8 @@ int rtnl_rtntype_a2n(int *id, char *arg)
res = RTN_UNICAST;
else if (strcmp(arg, "throw") == 0)
res = RTN_THROW;
+ else if (strcmp(arg, "failed_policy") == 0)
+ res = RTN_FAILED_POLICY;
else {
res = strtoul(arg, &end, 0);
if (!end || end == arg || *end || res > 255)
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -265,6 +265,7 @@ enum {
RTN_THROW, /* Not in this table */
RTN_NAT, /* Translate this address */
RTN_XRESOLVE, /* Use external resolver */
+ RTN_FAILED_POLICY, /* Source address failed policy */
__RTN_MAX
};

View file

@ -0,0 +1,20 @@
--- a/configure
+++ b/configure
@@ -241,7 +241,7 @@ int main(int argc, char **argv) {
}
EOF
- $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1
+ $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS $LDFLAGS >/dev/null 2>&1
local ret=$?
rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test
@@ -259,7 +259,7 @@ int main(int argc, char **argv) {
}
EOF
- $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1
+ $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS $LDFLAGS >/dev/null 2>&1
local ret=$?
rm -f $TMPDIR/libbpf_sec_test.c $TMPDIR/libbpf_sec_test

View file

@ -0,0 +1,22 @@
--- a/ip/Makefile
+++ b/ip/Makefile
@@ -28,7 +28,7 @@ STATIC_SYM_SOURCES:=$(filter-out $(STATI
ALLOBJ=$(IPOBJ) $(RTMONOBJ)
SCRIPTS=routel
-TARGETS=ip rtmon
+TARGETS=$(findstring ip,$(BUILD_VARIANT)) rtmon
all: $(TARGETS) $(SCRIPTS)
--- a/tc/Makefile
+++ b/tc/Makefile
@@ -120,7 +120,7 @@ MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic $< -o $@
-all: tc $(TCSO)
+all: $(findstring tc,$(BUILD_VARIANT)) $(TCSO)
tc: $(TCOBJ) $(LIBNETLINK) libtc.a
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@

View file

@ -0,0 +1,19 @@
--- a/configure
+++ b/configure
@@ -413,14 +413,8 @@ EOF
if $CC -I$INCLUDE -o $TMPDIR/strtest $TMPDIR/strtest.c >/dev/null 2>&1; then
echo "no"
else
- if ${PKG_CONFIG} libbsd --exists; then
- echo 'CFLAGS += -DHAVE_LIBBSD' "$(${PKG_CONFIG} libbsd --cflags)" >>$CONFIG
- echo 'LDLIBS +=' "$(${PKG_CONFIG} libbsd --libs)" >> $CONFIG
- echo "no"
- else
- echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
- echo "yes"
- fi
+ echo 'CFLAGS += -DNEED_STRLCPY' >>$CONFIG
+ echo "yes"
fi
rm -f $TMPDIR/strtest.c $TMPDIR/strtest
}

View file

@ -0,0 +1,11 @@
--- a/configure
+++ b/configure
@@ -342,7 +342,7 @@ check_libbpf()
check_selinux()
# SELinux is a compile time option in the ss utility
{
- if ${PKG_CONFIG} libselinux --exists; then
+ if [ "${HAVE_SELINUX}" = "y" ] && ${PKG_CONFIG} libselinux --exists; then
echo "HAVE_SELINUX:=y" >>$CONFIG
echo "yes"

View file

@ -1,27 +0,0 @@
## Netfilter and iptables extension for [FULLCONENAT](https://github.com/Chion82/netfilter-full-cone-nat) target ported to OpenWrt.
Compile
---
```
# cd to OpenWrt source path
# Clone this repo
git clone -b master --single-branch https://github.com/LGA1150/openwrt-fullconenat package/fullconenat
# Select Network -> Firewall -> iptables-mod-fullconenat
make menuconfig
# Compile
make V=s
```
Usage
---
You can apply [this patch](https://github.com/LGA1150/fullconenat-fw3-patch) to OpenWrt's Firewall3 (Recommended).
Or manually add the following rules to `/etc/firewall.user`
```
iptables -t nat -A zone_wan_prerouting -j FULLCONENAT
iptables -t nat -A zone_wan_postrouting -j FULLCONENAT
```
Workaround for conflicting with module `nf_conntrack_netlink`
---
This module uses conntrack events to register a callback function. In the same netns, only one callback method can be registered, that causes conflicts with `nf_conntrack_netlink`, which also uses conntrack events. Qualcomm Shortcut FE has introduced a patch to allow multiple callbacks to be registered. To apply, put [this patch](https://github.com/coolsnowwolf/lede/blob/master/target/linux/generic/hack-4.14/952-net-conntrack-events-support-multiple-registrant.patch) into `target/linux/generic/hack-4.14`.

View file

@ -1,17 +0,0 @@
diff --git a/xt_FULLCONENAT.c b/xt_FULLCONENAT.c
index 9e52eba..8658c5f 100644
--- a/xt_FULLCONENAT.c
+++ b/xt_FULLCONENAT.c
@@ -702,9 +702,11 @@ static struct xt_target tg_reg[] __read_mostly = {
static int __init fullconenat_tg_init(void)
{
+ printk(KERN_INFO "xt_FULLCONENAT: RFC3489 Full Cone NAT module\n"
+ "xt_FULLCONENAT: Copyright (C) 2018 Chion Tang <tech@chionlab.moe>\n");
wq = create_singlethread_workqueue("xt_FULLCONENAT");
if (wq == NULL) {
- printk("xt_FULLCONENAT: warning: failed to create workqueue\n");
+ printk(KERN_WARNING "xt_FULLCONENAT: warning: failed to create workqueue\n");
}
return xt_register_targets(tg_reg, ARRAY_SIZE(tg_reg));

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2020 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
# Copyright (C) 2020-2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -8,10 +8,10 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ell
PKG_VERSION:=0.30
PKG_VERSION:=0.41
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_HASH:=51cf8cc66a9d1038e41f7d619ea5660aa4476904496562b2d45ca79370ca4a5e
PKG_HASH:=4e8dba6c53cf152dbd0fd1dc3d4c7b04abf79e20a948895f85943e586870505c
PKG_SOURCE_URL:=@KERNEL/linux/libs/ell
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=GPL

125
libgpiod/Makefile Normal file
View file

@ -0,0 +1,125 @@
#
# Copyright (C) 2018-2019 Michael Heimpold <mhei@heimpold.de>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libgpiod
PKG_VERSION:=2.1.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/libs/libgpiod/
PKG_HASH:=b21913f469d3135680d5516f00fdf9f81d5e564e19ffb690927ea7f1d7e312cb
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PYTHON3_PKG_BUILD:=0
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/python/python3-package.mk
ifneq ($(CONFIG_PACKAGE_gpiod-tools),)
CONFIGURE_ARGS += --enable-tools
endif
PYTHON3_PKG_SETUP_DIR:=bindings/python
TARGET_CPPFLAGS+=-I$(PKG_BUILD_DIR)/include
TARGET_LDFLAGS+=-L$(PKG_BUILD_DIR)/lib/.libs
define Package/libgpiod
SECTION:=libs
CATEGORY:=Libraries
URL:=https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
TITLE:=Library for interacting with Linux's GPIO character device
KCONFIG:= \
CONFIG_GPIO_CDEV=y
DEPENDS:=@GPIO_SUPPORT
endef
define Package/libgpiod/description
C library for interacting with the linux GPIO character device
(gpiod stands for GPIO device).
endef
define Package/gpiod-tools
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Tools for interacting with GPIO pins
DEPENDS:=+libgpiod
endef
define Package/gpiod-tools/description
Tools for interacting with the linux GPIO character device
(gpiod stands for GPIO device).
endef
define Package/python3-gpiod
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=Python bindings for libgpiod
URL:=https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
DEPENDS:=+python3-light +libgpiod
endef
define Package/python3-gpiod/description
This package contains the Python bindings for libgpiod.
endef
define Build/Configure
$(call Build/Configure/Default)
ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
$(call Py3Build/Configure)
endif
endef
define Build/Compile
$(call Build/Compile/Default)
ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
$(call Py3Build/Compile)
endif
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/gpiod.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgpiod.{so*,a} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgpiod.pc $(1)/usr/lib/pkgconfig/
ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
$(INSTALL_DIR) $(1)$(PYTHON3_PKG_DIR)
$(CP) $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/* $(1)$(PYTHON3_PKG_DIR)
endif
endef
define Package/libgpiod/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgpiod.so.* $(1)/usr/lib/
endef
define Package/gpiod-tools/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
endef
define Py3Package/python3-gpiod/install
# this empty define prevent installing tools from /usr/bin
endef
$(eval $(call BuildPackage,libgpiod))
$(eval $(call BuildPackage,gpiod-tools))
$(eval $(call Py3Package,python3-gpiod))
$(eval $(call BuildPackage,python3-gpiod))
$(eval $(call BuildPackage,python3-gpiod-src))

View file

@ -1,37 +1,37 @@
#
# Copyright (C) 2016 Velocloud Inc.
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>
# Copyright (C) 2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
#
# This is free software, licensed under the GNU General Public License v2.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libmbim
PKG_VERSION:=1.31.6
PKG_SOURCE_VERSION:=1.31.6-dev
#PKG_SOURCE_VERSION:=1866ed53c05916c66c5d52682778a6078e5221d3
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libmbim.git
PKG_SOURCE_VERSION:=c90c7c5b877de6e413b4833aaf1a42d2d128b051
#libmPKG_MIRROR_HASH:=8fc4e2d78d6a1003bf89303d3ce779283b176d74e84a241ba8efb0d468605268
PKG_NAME:=libmbim
PKG_VERSION:=1.25.3-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=10
PKG_BUILD_FLAGS:=gc-sections
PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
CONFIGURE_ARGS += \
--disable-static \
--disable-gtk-doc \
--disable-gtk-doc-html \
--disable-gtk-doc-pdf \
--disable-silent-rules \
--enable-more-warnings=yes
TARGET_CFLAGS += -fno-merge-all-constants -fmerge-constants
MESON_ARGS += \
-Dintrospection=false \
-Dman=false \
-Dbash_completion=false \
-Db_lto=true
define Package/libmbim
SECTION:=libs
@ -58,10 +58,6 @@ define Package/mbim-utils
LICENSE_FILES:=COPYING
endef
CONFIGURE_ARGS += \
--without-udev \
--without-udev-base-dir
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) \
@ -80,11 +76,15 @@ define Build/InstallDev
endef
define Package/libmbim/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) \
$(1)/usr/lib \
$(1)/usr/libexec
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libmbim*.so.* \
$(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/mbim-proxy $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/mbim-proxy $(1)/usr/libexec/
endef
define Package/mbim-utils/install

View file

@ -13,4 +13,19 @@ config LIBQMI_WITH_QRTR_GLIB
help
Compile libqmi with QRTR support
choice
prompt "Select QMI message collection to build"
default LIBQMI_COLLECTION_BASIC
config LIBQMI_COLLECTION_MINIMAL
depends on !MODEMMANAGER_WITH_QMI
bool "minimal"
config LIBQMI_COLLECTION_BASIC
bool "basic (default)"
config LIBQMI_COLLECTION_FULL
bool "full"
endchoice
endmenu

View file

@ -1,28 +1,30 @@
#
# Copyright (C) 2016 Velocloud Inc.
# Copyright (C) 2016 Aleksander Morgado <aleksander@aleksander.es>
# Copyright (C) 2021 Ycarus (Yannick Chabanois) <ycarus@zugaina.org> for OpenMPTCProuter
#
# This is free software, licensed under the GNU General Public License v2.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libqmi
PKG_VERSION:=1.35.6
PKG_SOURCE_VERSION:=1.35.6-dev
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libqmi.git
PKG_SOURCE_VERSION:=29fab8a1d4496ca5a1d32bb486013b1868a718ba
PKG_NAME:=libqmi
PKG_VERSION:=1.29.3-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=10
#PKG_MIRROR_HASH:=af3dc760d0c40ef8af1f8b424435daa12bff698ed45b1cc9a9e38ea62ed047f0
PKG_FIXUP:=autoreconf
PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
PKG_BUILD_FLAGS:=gc-sections
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
TARGET_CFLAGS += -fno-merge-all-constants -fmerge-constants
define Package/libqmi/config
source "$(SOURCE)/Config.in"
@ -60,18 +62,16 @@ define Package/libqmi-utils/description
Utils to talk to QMI enabled modems
endef
CONFIGURE_ARGS += \
--disable-static \
--disable-gtk-doc \
--disable-gtk-doc-html \
--disable-gtk-doc-pdf \
--disable-silent-rules \
--enable-firmware-update \
--$(if $(LIBQMI_WITH_MBIM_QMUX),en,dis)able-mbim-qmux \
--$(if $(LIBQMI_WITH_QRTR_GLIB),en,dis)able-qrtr \
--enable-more-warnings=yes \
--without-udev \
--without-udev-base-dir
MESON_ARGS += \
-Dudev=false \
-Dintrospection=false \
-Dman=false \
-Dbash_completion=false \
-Db_lto=true \
-Dmbim_qmux=$(if $(CONFIG_LIBQMI_WITH_MBIM_QMUX),true,false) \
-Dqrtr=$(if $(CONFIG_LIBQMI_WITH_QRTR_GLIB),true,false) \
-Dcollection=$(if $(CONFIG_LIBQMI_COLLECTION_MINIMAL),minimal\
,$(if $(CONFIG_LIBQMI_COLLECTION_BASIC),basic,full))
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
@ -91,12 +91,15 @@ define Build/InstallDev
endef
define Package/libqmi/install
$(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_DIR) \
$(1)/usr/lib \
$(1)/usr/libexec
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libqmi*.so.* \
$(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/qmi-proxy $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/qmi-proxy $(1)/usr/libexec/
endef
define Package/qmi-utils/install

View file

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-05-13 21:38+0000\n"
"Last-Translator: Aleksandr Serdyukov <promolife@list.ru>\n"
"PO-Revision-Date: 2021-06-16 10:51+0000\n"
"Last-Translator: Dmitry Galenko <d@monteops.com>\n"
"Language-Team: Russian <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationsdsvpn/ru/>\n"
"Language: ru\n"

View file

@ -6,11 +6,11 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=Firewall and Portforwarding application
LUCI_DEPENDS:=+firewall
LUCI_TITLE:=Firewall and port forwarding application
LUCI_DEPENDS:=+luci-base +uci-firewall
PKG_LICENSE:=Apache-2.0
PKG_VERSION:=omr-202103
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
include $(TOPDIR)/feeds/luci/luci.mk

View file

@ -6,6 +6,7 @@
'require form';
'require network';
'require firewall';
'require validation';
'require tools.prng as random';
var protocols = [
@ -392,12 +393,25 @@ return baseclass.extend({
},
transformHostHints: function(family, hosts) {
var choice_values = [], choice_labels = {};
var choice_values = [],
choice_labels = {},
ip6addrs = {},
ipaddrs = {};
for (var mac in hosts) {
L.toArray(hosts[mac].ipaddrs || hosts[mac].ipv4).forEach(function(ip) {
ipaddrs[ip] = mac;
});
L.toArray(hosts[mac].ip6addrs || hosts[mac].ipv6).forEach(function(ip) {
ip6addrs[ip] = mac;
});
}
if (!family || family == 'ipv4') {
L.sortedKeys(hosts, 'ipv4', 'addr').forEach(function(mac) {
var val = hosts[mac].ipv4,
txt = hosts[mac].name || mac;
L.sortedKeys(ipaddrs, null, 'addr').forEach(function(ip) {
var val = ip,
txt = hosts[ipaddrs[ip]].name || ipaddrs[ip];
choice_values.push(val);
choice_labels[val] = E([], [ val, ' (', E('strong', {}, [txt]), ')' ]);
@ -405,9 +419,9 @@ return baseclass.extend({
}
if (!family || family == 'ipv6') {
L.sortedKeys(hosts, 'ipv6', 'addr').forEach(function(mac) {
var val = hosts[mac].ipv6,
txt = hosts[mac].name || mac;
L.sortedKeys(ip6addrs, null, 'addr').forEach(function(ip) {
var val = ip,
txt = hosts[ip6addrs[ip]].name || ip6addrs[ip];
choice_values.push(val);
choice_labels[val] = E([], [ val, ' (', E('strong', {}, [txt]), ')' ]);
@ -425,11 +439,27 @@ return baseclass.extend({
opt.addChoices(choices[0], choices[1]);
},
CBIDynamicMultiValueList: form.DynamicList.extend({
renderWidget: function(/* ... */) {
var dl = form.DynamicList.prototype.renderWidget.apply(this, arguments),
inst = dom.findClassInstance(dl);
inst.addItem = function(dl, value, text, flash) {
var values = L.toArray(value);
for (var i = 0; i < values.length; i++)
ui.DynamicList.prototype.addItem.call(this, dl, values[i], null, true);
};
return dl;
}
}),
addIPOption: function(s, tab, name, label, description, family, hosts, multiple) {
var o = s.taboption(tab, multiple ? form.DynamicList : form.Value, name, label, description);
var o = s.taboption(tab, multiple ? this.CBIDynamicMultiValueList : form.Value, name, label, description);
var fw4 = L.hasSystemFeature('firewall4');
o.modalonly = true;
o.datatype = 'list(neg(ipmask))';
o.datatype = (fw4 && validation.types.iprange) ? 'list(neg(or(ipmask("true"),iprange)))' : 'list(neg(ipmask("true")))';
o.placeholder = multiple ? _('-- add IP --') : _('any');
if (family != null) {
@ -449,18 +479,20 @@ return baseclass.extend({
addLocalIPOption: function(s, tab, name, label, description, devices) {
var o = s.taboption(tab, form.Value, name, label, description);
var fw4 = L.hasSystemFeature('firewall4');
o.modalonly = true;
o.datatype = 'ip4addr("nomask")';
o.datatype = !fw4?'ip4addr("nomask")':'ipaddr("nomask")';
o.placeholder = _('any');
L.sortedKeys(devices, 'name').forEach(function(dev) {
var ip4addrs = devices[dev].ipaddrs;
var ip6addrs = devices[dev].ip6addrs;
if (!L.isObject(devices[dev].flags) || !Array.isArray(ip4addrs) || devices[dev].flags.loopback)
if (!L.isObject(devices[dev].flags) || devices[dev].flags.loopback)
return;
for (var i = 0; i < ip4addrs.length; i++) {
for (var i = 0; Array.isArray(ip4addrs) && i < ip4addrs.length; i++) {
if (!L.isObject(ip4addrs[i]) || !ip4addrs[i].address)
continue;
@ -468,13 +500,21 @@ return baseclass.extend({
ip4addrs[i].address, ' (', E('strong', {}, [dev]), ')'
]));
}
for (var i = 0; fw4 && Array.isArray(ip6addrs) && i < ip6addrs.length; i++) {
if (!L.isObject(ip6addrs[i]) || !ip6addrs[i].address)
continue;
o.value(ip6addrs[i].address, E([], [
ip6addrs[i].address, ' (', E('strong', {}, [dev]), ')'
]));
}
});
return o;
},
addMACOption: function(s, tab, name, label, description, hosts) {
var o = s.taboption(tab, form.DynamicList, name, label, description);
var o = s.taboption(tab, this.CBIDynamicMultiValueList, name, label, description);
o.modalonly = true;
o.datatype = 'list(macaddr)';
@ -482,7 +522,10 @@ return baseclass.extend({
L.sortedKeys(hosts).forEach(function(mac) {
o.value(mac, E([], [ mac, ' (', E('strong', {}, [
hosts[mac].name || hosts[mac].ipv4 || hosts[mac].ipv6 || '?'
hosts[mac].name ||
L.toArray(hosts[mac].ipaddrs || hosts[mac].ipv4)[0] ||
L.toArray(hosts[mac].ip6addrs || hosts[mac].ipv6)[0] ||
'?'
]), ')' ]));
});
@ -522,6 +565,9 @@ return baseclass.extend({
}
}, this));
if (cfgvalue == '*' || cfgvalue == 'any' || cfgvalue == 'all')
cfgvalue = 'all';
return cfgvalue;
},
@ -537,6 +583,7 @@ return baseclass.extend({
display_items: 10,
dropdown_items: -1,
create: true,
disabled: (this.readonly != null) ? this.readonly : this.map.readonly,
validate: function(value) {
var v = L.toArray(value);
@ -555,8 +602,7 @@ return baseclass.extend({
});
widget.createChoiceElement = function(sb, value) {
var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
p = lookupProto(lookupProto(m ? +m[1] : value)[0]);
var p = lookupProto(value);
return ui.Dropdown.prototype.createChoiceElement.call(this, sb, p[2], p[1]);
};
@ -566,9 +612,11 @@ return baseclass.extend({
var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
p = lookupProto(m ? +m[1] : value);
return (p[0] > -1) ? p[2] : value;
return (p[0] > -1) ? p[2] : p[1];
});
values.sort();
return ui.Dropdown.prototype.createItems.call(this, sb, values.join(' '));
};

View file

@ -24,7 +24,7 @@ return view.extend({
return E([
E('h2', _('Firewall - Custom Rules')),
E('p', {}, _('Custom rules allow you to execute arbitrary iptables commands which are not otherwise covered by the firewall framework. The commands are executed after each firewall restart, right after the default ruleset has been loaded.')),
E('p', {}, E('textarea', { 'style': 'width:100%', 'rows': 10 }, [ fwuser != null ? fwuser : '' ]))
E('p', {}, E('textarea', { 'style': 'width:100%', 'rows': 25 }, [ fwuser != null ? fwuser : '' ]))
]);
},

View file

@ -9,6 +9,8 @@
'require tools.widgets as widgets';
function rule_proto_txt(s, ctHelpers) {
var family = (uci.get('firewall', s, 'family') || '').toLowerCase().replace(/^(?:all|\*)$/, 'any');
var dip = uci.get('firewall', s, 'dest_ip') || '';
var proto = L.toArray(uci.get('firewall', s, 'proto')).filter(function(p) {
return (p != '*' && p != 'any' && p != 'all');
}).map(function(p) {
@ -20,7 +22,7 @@ function rule_proto_txt(s, ctHelpers) {
};
});
m = String(uci.get('firewall', s, 'helper') || '').match(/^(!\s*)?(\S+)$/);
var m = String(uci.get('firewall', s, 'helper') || '').match(/^(!\s*)?(\S+)$/);
var h = m ? {
val: m[0].toUpperCase(),
inv: m[1],
@ -35,7 +37,9 @@ function rule_proto_txt(s, ctHelpers) {
mask: m[3] ? '0x%02X'.format(+m[3]) : null
} : null;
return fwtool.fmt(_('Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="cbi-tooltip-container">%{item.name}<span class="cbi-tooltip">ICMP with types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}%{helper?, helper %{helper.inv?<var data-tooltip="Match any helper except &quot;%{helper.name}&quot;">%{helper.val}</var>:<var data-tooltip="%{helper.name}">%{helper.val}</var>}}'), {
return fwtool.fmt(_('Incoming %{ipv6?%{ipv4?<var>IPv4</var> and <var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#%{next?, }%{item.types?<var class="cbi-tooltip-container">%{item.name}<span class="cbi-tooltip">ICMP with types %{item.types#%{next?, }<var>%{item}</var>}</span></var>:<var>%{item.name}</var>}}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}%{helper?, helper %{helper.inv?<var data-tooltip="Match any helper except &quot;%{helper.name}&quot;">%{helper.val}</var>:<var data-tooltip="%{helper.name}">%{helper.val}</var>}}'), {
ipv4: ((!family && dip.indexOf(':') == -1) || family == 'any' || (!family && !dip) || family == 'ipv4'),
ipv6: ((!family && dip.indexOf(':') != -1) || family == 'any' || family == 'ipv6'),
proto: proto,
helper: h,
mark: f
@ -46,7 +50,7 @@ function rule_src_txt(s, hosts) {
var z = uci.get('firewall', s, 'src');
return fwtool.fmt(_('From %{src}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-tooltip="Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint.name}}.":%{item.hint.name? data-tooltip="%{item.hint.name}"}}>%{item.ival}</var>}}'), {
src: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
src: E('span', { 'class': 'zonebadge', 'style': fwmodel.getZoneColorStyle(z) }, [(z == '*') ? E('em', _('any zone')) : (z ? E('strong', z) : E('em', _('this device')))]),
src_ip: fwtool.map_invert(uci.get('firewall', s, 'src_ip'), 'toLowerCase'),
src_mac: fwtool.map_invert(uci.get('firewall', s, 'src_mac'), 'toUpperCase').map(function(v) { return Object.assign(v, { hint: hosts[v.val] }) }),
src_port: fwtool.map_invert(uci.get('firewall', s, 'src_port'))
@ -55,7 +59,7 @@ function rule_src_txt(s, hosts) {
function rule_dest_txt(s) {
return fwtool.fmt(_('To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName(null) }, [E('em', _('this device'))]),
dest: E('span', { 'class': 'zonebadge', 'style': fwmodel.getZoneColorStyle(null) }, [E('em', _('this device'))]),
dest_ip: fwtool.map_invert(uci.get('firewall', s, 'src_dip'), 'toLowerCase'),
dest_port: fwtool.map_invert(uci.get('firewall', s, 'src_dport'))
});
@ -79,12 +83,30 @@ function rule_target_txt(s) {
var z = uci.get('firewall', s, 'dest');
return fwtool.fmt(_('<var data-tooltip="DNAT">Forward</var> to %{dest}%{dest_ip? IP <var>%{dest_ip}</var>}%{dest_port? port <var>%{dest_port}</var>}'), {
dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z ? E('strong', z) : E('em', _('this device')))]),
dest_ip: (uci.get('firewall', s, 'dest_ip') || '').toLowerCase(),
dest_port: uci.get('firewall', s, 'dest_port')
});
}
function validate_opt_family(m, section_id, opt) {
var dopt = m.section.getOption('dest_ip'),
fmopt = m.section.getOption('family');
if (!dopt.isValid(section_id) && opt != 'dest_ip')
return true;
if (!fmopt.isValid(section_id) && opt != 'family')
return true;
var dip = dopt.formvalue(section_id) || '',
fm = fmopt.formvalue(section_id) || '';
if (fm == '' || (fm == 'any' && dip == '') || (fm == 'ipv6' && (dip.indexOf(':') != -1 || dip == '')) || (fm == 'ipv4' && dip.indexOf(':') == -1))
return true;
return _('Address family, Internal IP address must match');
}
return view.extend({
callHostHints: rpc.declare({
object: 'luci-rpc',
@ -125,6 +147,7 @@ return view.extend({
ctHelpers = data[1],
devs = data[2],
m, s, o;
var fw4 = L.hasSystemFeature('firewall4');
m = new form.Map('firewall', _('Firewall - Port Forwards'),
_('Port forwarding allows remote computers on the Internet to connect to a specific computer or service within the private LAN.'));
@ -133,6 +156,7 @@ return view.extend({
s.addremove = true;
s.anonymous = true;
s.sortable = true;
s.cloneable = true;
s.tab('general', _('General Settings'));
s.tab('advanced', _('Advanced Settings'));
@ -149,9 +173,10 @@ return view.extend({
var config_name = this.uciconfig || this.map.config,
section_id = uci.add(config_name, this.sectiontype);
uci.set(config_name, section_id, 'dest', 'lan');
uci.set(config_name, section_id, 'target', 'DNAT');
this.addedSection = section_id;
m.addedSection = section_id;
this.renderMoreOptionsModal(section_id);
};
@ -159,6 +184,32 @@ return view.extend({
o.placeholder = _('Unnamed forward');
o.modalonly = true;
if (fw4) {
o = s.taboption('general', form.ListValue, 'family', _('Restrict to address family'));
o.modalonly = true;
o.rmempty = true;
o.value('any', _('IPv4 and IPv6'));
o.value('ipv4', _('IPv4 only'));
o.value('ipv6', _('IPv6 only'));
o.value('', _('automatic')); // infer from zone or used IP addresses
o.cfgvalue = function(section_id) {
var val = this.map.data.get(this.map.config, section_id, 'family');
if (!val)
return '';
else if (val == 'any' || val == 'all' || val == '*')
return 'any';
else if (val == 'inet' || String(val).indexOf('4') != -1)
return 'ipv4';
else if (String(val).indexOf('6') != -1)
return 'ipv6';
};
o.validate = function(section_id, value) {
fwtool.updateHostHints(this.map, section_id, 'dest_ip', value, hosts);
return !fw4?true:validate_opt_family(this, section_id, 'family');
};
}
o = s.option(form.DummyValue, '_match', _('Match'));
o.modalonly = false;
o.textvalue = function(s) {
@ -193,15 +244,23 @@ return view.extend({
o.nocreate = true;
o.default = 'wan';
o = s.taboption('advanced', form.Value, 'ipset', _('Use ipset'));
uci.sections('firewall', 'ipset', function(s) {
if (typeof(s.name) == 'string')
o.value(s.name, s.comment ? '%s (%s)'.format(s.name, s.comment) : s.name);
});
o.modalonly = true;
o.rmempty = true;
o = fwtool.addMACOption(s, 'advanced', 'src_mac', _('Source MAC address'),
_('Only match incoming traffic from these MACs.'), hosts);
o.rmempty = true;
o.datatype = 'list(neg(macaddr))';
o = fwtool.addIPOption(s, 'advanced', 'src_ip', _('Source IP address'),
_('Only match incoming traffic from this IP or range.'), 'ipv4', hosts);
_('Only match incoming traffic from this IP or range.'), !fw4?'ipv4':'', hosts);
o.rmempty = true;
o.datatype = 'neg(ipmask4)';
o.datatype = !fw4?'neg(ipmask4("true"))':'neg(ipmask("true"))';
o = s.taboption('advanced', form.Value, 'src_port', _('Source port'),
_('Only match incoming traffic originating from the given source port or port range on the client host'));
@ -214,7 +273,7 @@ return view.extend({
o = fwtool.addLocalIPOption(s, 'advanced', 'src_dip', _('External IP address'),
_('Only match incoming traffic directed at the given IP address.'), devs);
o.datatype = 'neg(ipmask4)';
o.datatype = !fw4?'neg(ipmask4("true"))':'neg(ipmask("true"))';
o.rmempty = true;
o = s.taboption('general', form.Value, 'src_dport', _('External port'),
@ -229,12 +288,11 @@ return view.extend({
o.modalonly = true;
o.rmempty = true;
o.nocreate = true;
o.default = 'lan';
o = fwtool.addIPOption(s, 'general', 'dest_ip', _('Internal IP address'),
_('Redirect matched incoming traffic to the specified internal host'), 'ipv4', hosts);
_('Redirect matched incoming traffic to the specified internal host'), !fw4?'ipv4':'', hosts);
o.rmempty = true;
o.datatype = 'ipmask4';
o.datatype = !fw4?'ipmask4':'ipmask';
o = s.taboption('general', form.Value, 'dest_port', _('Internal port'),
_('Redirect matched incoming traffic to the given port on the internal host'));
@ -259,6 +317,12 @@ return view.extend({
uci.set('firewall', section_id, 'reflection_src', (value != 'internal') ? value : null);
};
o = s.taboption('advanced', widgets.ZoneSelect, 'reflection_zone', _('Reflection zones'), _('Zones from which reflection rules shall be created. If unset, only the destination zone is used.'));
o.nocreate = true;
o.multiple = true;
o.modalonly = true;
o.depends('reflection', '1');
o = s.taboption('advanced', form.Value, 'helper', _('Match helper'), _('Match traffic using the specified connection tracking helper.'));
o.modalonly = true;
o.placeholder = _('any');
@ -281,16 +345,16 @@ return view.extend({
fwtool.addLimitOption(s);
fwtool.addLimitBurstOption(s);
o = s.taboption('advanced', form.Flag, 'v2ray', _('Use V2Ray'),
_('Forward a port (not a range) from server using V2Ray proxy (if enabled) instead of VPN'));
o = s.taboption('advanced', form.Flag, 'v2ray', _('Use V2Ray/XRay'),
_('Forward a port (not a range) from server using V2Ray/XRay proxy (if enabled) instead of VPN'));
o.modalonly = true;
o.editable = true;
o.depends({ src: 'vpn', '!contains': true });
o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'),
_('Passes additional arguments to iptables. Use with care!'));
o.modalonly = true;
o.rmempty = true;
if (!L.hasSystemFeature('firewall4')) {
o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'),
_('Passes additional arguments to iptables. Use with care!'));
o.modalonly = true;
o.rmempty = true;
}
return m.render();
}

View file

@ -0,0 +1,222 @@
'use strict';
'require view';
'require uci';
'require form';
'require firewall';
'require tools.firewall as fwtool';
return view.extend({
load: function() {
return Promise.all([
uci.load('firewall')
]);
},
render: function(data) {
let m, s, o;
m = new form.Map('firewall', _('Firewall - IP sets'),
_('firewall4 supports referencing and creating IP sets to simplify matching of large address lists without the need to create one rule per item to match. Port ranges in ipsets are unsupported by firewall4.<br />'));
var have_fw4 = L.hasSystemFeature('firewall4');
if (have_fw4) {
s = m.section(form.NamedSection, 'fwver', 'fwver', '', _('Your device runs firewall4.'));
} else {
s = m.section(form.NamedSection, 'fwver', 'fwver', '', _('Your device does not run firewall4.'));
}
s = m.section(form.GridSection, 'ipset', _('IP Sets'));
s.addremove = true;
s.anonymous = true;
s.sortable = true;
s.cloneable = true;
s.nodescriptions = true;
s.filter = function(section_id) {
return (section_id.startsWith('bypass') == false && section_id.startsWith('omr_dst') == false && section_id.startsWith('omr_dscp') == false);
};
/* refer to: https://ipset.netfilter.org/ipset.man.html */
if (have_fw4) {
o = s.option(form.Value, 'name', _('Name'));
o.optional = false;
o.rmempty = false;
o.validate = function (section_id, value) {
if (!/^[a-zA-Z_.][a-zA-Z0-9\/_.-]*$/.test(value))
return _('Invalid set name');
return true;
};
} else {
o = s.option(form.Value, 'name', _('Name'));
o.depends({ external: '' });
/* Default: (none) if external is unset
value of external if external is set */
}
o.placeholder = _('Unnamed set');
/* comment requires https://git.openwrt.org/?p=project/firewall4.git;a=commitdiff;h=39e8c70957c795bf0c12f04299170ae86c6efdf8 */
o = s.option(form.Value, 'comment', _('Comment'));
o.placeholder = _('Comment');
o.modalonly = true;
o.rmempty = true;
o = s.option(form.ListValue, 'family', _('Family'));
o.value('ipv4', _('IPv4'));
o.value('ipv6', _('IPv6'));
o.default = _('ipv4');
/* Direction src, dst; (Data)Types: ip, port, mac, net or set
Tuples: direction_datatype e.g. src_port, dest_net */
o = s.option(form.DynamicList, 'match', _('Packet Field Match'),
_('Packet fields to match upon.<br />' +
'Syntax: <em>direction_datatype</em>. e.g.: <code>src_port, dest_net</code>.<br />' +
'Directions: <code>src, dst</code>. Datatypes: <code>ip, port, mac, net, set</code>.<br />' +
'Direction prefixes are optional.<br />' +
'*Note: datatype <code>set</code> is unsupported in fw4.'));
o.value('ip', _('ip: IP addr'));
o.value('port', _('port: Port'));
o.value('mac', _('mac: MAC addr'));
o.value('net', _('net: (sub)net'));
if (!have_fw4)
o.value('set', _('set: ipset*'));
o.value('src_ip', _('src_ip: Source IP'));
o.value('src_port', _('src_port: Source Port'));
o.value('src_mac', _('src_mac: Source MAC addr'));
o.value('src_net', _('src_net: Source (sub)net'));
if (!have_fw4)
o.value('src_set', _('src_Set: Source ipset*')); // fw4 unsupported
o.value('dest_ip', _('dest_ip: Destination IP'));
o.value('dest_port', _('dest_port: Destination Port'));
o.value('dest_mac', _('dest_mac: Destination MAC addr'));
o.value('dest_net', _('dest_net: Destination (sub)net'));
if (!have_fw4)
o.value('dest_set', _('dest_set: Destination ipset*')); // fw4 unsupported
o.optional = false;
o.rmempty = false;
// TODO: if/when firewall5 arrives, this 'else' check must change.
if (have_fw4) {
//we have fw4
o = s.option(form.DynamicList, 'entry', _('IPs/Networks/MACs'),
_('macaddr|ip[/cidr]<br />'));
o.datatype = 'or(ipaddr,macaddr)';
o.rmempty = true;
o = s.option(form.Value, 'maxelem', _('Max Entries'),
_('up to 65536 entries.'));
o.datatype = 'port'; //covers 16 bit size
o.modalonly = true;
o.rmempty = true;
} else {
// this else section is intended to handle firewall3
o = s.option(form.Value, 'external', _('Refer To External Set'));
/* Todo: loop to fill o.values with all other ipset names except itself */
o.rmempty = true;
o.optional = true;
/* 'storage' depends on fw3. It must be removed for fw4 */
//aka 'method' in netfilter terminology.
o = s.option(form.ListValue, 'storage', _('Storage Method'));
o.value('bitmap', _('bitmap')); //ipv4 only
o.value('hash', _('hash'));
o.value('list', _('list'));
o.validate = function(section_id, value) {
var family = this.section.formvalue(section_id, 'family');
if (value.match(/bitmap/) && !family.match(/ipv4/))
return _('bitmap is ipv4 only');
return true;
}
/* this iprange differs from netfilters range fromip-toip|ip/cidr:
uci enforces a datatype = cidr in order to be able to enter
an IP for all storage/data types. */
o = s.option(form.Value, 'iprange', _('IP (range)'),
_('ip[/cidr]<br />'+
'For use with Match datatypes: <code>*_ip</code>.'));
o.datatype = 'ipaddr';
o.depends({family: 'ipv4', storage: 'bitmap', match: /_ip|_mac/ });
o.depends({storage: 'hash', match: /_ip/ });
o = s.option(form.DynamicList, 'entry', _('IPs/Networks'),
_('ip[/cidr]<br />'));
o.datatype = 'or(ipaddr,macaddr)';
o.depends({storage: 'hash', match: /_ip|_net|_mac/ });
o = s.option(form.Value, 'portrange', _('Port range'),
_('fromport-toport'));
o.datatype = 'neg(portrange)';
o.depends({family: 'ipv4', storage: 'bitmap', match: /_port/ });
o.depends({family: 'ipv4', storage: 'hash', match: /_port/ });
o.depends({family: 'ipv6', storage: 'hash', match: /_port/ });
o = s.option(form.Value, 'netmask', _('Netmask'));
o.datatype = 'or(ip4prefix,ip6prefix)';
o.depends({family: 'ipv4', storage: 'bitmap', match: /_ip/ });
o.depends({storage: 'hash', match: /_ip/});
o = s.option(form.Value, 'maxelem', _('Max Length'),
_('up to 65536 entries.'));
o.datatype = 'port'; //covers 16 bit size
o.depends('storage', 'hash');
o.depends('storage', 'list');
o.modalonly = true;
o = s.option(form.Value, 'hashsize', _('Initial Hash Size'));
o.depends('storage', 'hash');
o.placeholder = _('1024');
o.modalonly = true;
}
o = s.option(form.FileUpload, 'loadfile', _('Include File'),
_('Path to file of CIDRs, subnets, host IPs, etc.<br />'));
o.root_directory = '/etc/luci-uploads';
o.enable_delete = true;
o.enable_upload = true;
o.datatype = 'file';
o.rmempty = true;
o = s.option(form.Value, 'timeout', _('Timeout'),
_('Unit: seconds. Default <code>0</code> means the entry is added permanently to the set.<br />' +
'Max: 2147483 seconds.'));
o.placeholder = _('0');
o.modalonly = true;
o.rmempty = true;
o = s.option(form.Flag, 'counters', _('Counters'),
_('Enables packet and byte count tracking for the set.'));
o.modalonly = true;
o.rmempty = true;
o.default = false;
o = s.option(form.Flag, 'enabled', _('Enabled'));
o.default = true;
o.editable = true;
o.modalonly = false;
return m.render();
}
});

View file

@ -22,7 +22,7 @@ function rule_proto_txt(s, ctHelpers) {
};
});
m = String(uci.get('firewall', s, 'helper') || '').match(/^(!\s*)?(\S+)$/);
var m = String(uci.get('firewall', s, 'helper') || '').match(/^(!\s*)?(\S+)$/);
var h = m ? {
val: m[0].toUpperCase(),
inv: m[1],
@ -62,7 +62,7 @@ function rule_src_txt(s, hosts) {
d = (uci.get('firewall', s, 'direction') == 'in') ? uci.get('firewall', s, 'device') : null;
return fwtool.fmt(_('From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}%{src_mac?, MAC %{src_mac#%{next?, }<var%{item.inv? data-tooltip="Match MACs except %{item.val}%{item.hint.name? a.k.a. %{item.hint.name}}.":%{item.hint.name? data-tooltip="%{item.hint.name}"}}>%{item.ival}</var>}}'), {
src: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
src: E('span', { 'class': 'zonebadge', 'style': fwmodel.getZoneColorStyle(z) }, [(z == '*') ? E('em', _('any zone')) : (z ? E('strong', z) : E('em', _('this device')))]),
src_ip: fwtool.map_invert(uci.get('firewall', s, 'src_ip'), 'toLowerCase'),
src_mac: fwtool.map_invert(uci.get('firewall', s, 'src_mac'), 'toUpperCase').map(function(v) { return Object.assign(v, { hint: hosts[v.val] }) }),
src_port: fwtool.map_invert(uci.get('firewall', s, 'src_port')),
@ -75,7 +75,7 @@ function rule_dest_txt(s) {
d = (uci.get('firewall', s, 'direction') == 'out') ? uci.get('firewall', s, 'device') : null;
return fwtool.fmt(_('To %{dest}%{dest_device?, interface <var>%{dest_device}</var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
dest: E('span', { 'class': 'zonebadge', 'style': fwmodel.getZoneColorStyle(z) }, [(z == '*') ? E('em', _('any zone')) : (z ? E('strong', z) : E('em', _('this device')))]),
dest_ip: fwtool.map_invert(uci.get('firewall', s, 'dest_ip'), 'toLowerCase'),
dest_port: fwtool.map_invert(uci.get('firewall', s, 'dest_port')),
dest_device: d
@ -171,19 +171,21 @@ return view.extend({
m, s, o;
m = new form.Map('firewall', _('Firewall - Traffic Rules'),
_('Traffic rules define policies for packets traveling between different zones, for example to reject traffic between certain hosts or to open WAN ports on the router.'));
_('Traffic rules define policies for packets travelling between different zones, for example to reject traffic between certain hosts or to open WAN ports on the router.'));
s = m.section(form.GridSection, 'rule', _('Traffic Rules'));
s.addremove = true;
s.anonymous = true;
s.sortable = true;
s.cloneable = true;
s.tab('general', _('General Settings'));
s.tab('advanced', _('Advanced Settings'));
s.tab('timed', _('Time Restrictions'));
s.filter = function(section_id) {
return (uci.get('firewall', section_id, 'target') != 'SNAT');
//return (uci.get('firewall', section_id, 'target') != 'SNAT');
return (uci.get('firewall', section_id, 'target') != 'SNAT' && section_id.startsWith('omr_dst') == false && section_id.startsWith('omr_dscp') == false);
};
s.sectiontitle = function(section_id) {
@ -193,13 +195,8 @@ return view.extend({
s.handleAdd = function(ev) {
var config_name = this.uciconfig || this.map.config,
section_id = uci.add(config_name, this.sectiontype),
opt1, opt2;
for (var i = 0; i < this.children.length; i++)
if (this.children[i].option == 'src')
opt1 = this.children[i];
else if (this.children[i].option == 'dest')
opt2 = this.children[i];
opt1 = this.getOption('src'),
opt2 = this.getOption('dest');
opt1.default = 'wan';
opt2.default = 'lan';
@ -236,7 +233,19 @@ return view.extend({
o.modalonly = false;
o.default = o.enabled;
o.editable = true;
o.tooltip = function(section_id) {
var weekdays = uci.get('firewall', section_id, 'weekdays');
var monthdays = uci.get('firewall', section_id, 'monthdays');
var start_time = uci.get('firewall', section_id, 'start_time');
var stop_time = uci.get('firewall', section_id, 'stop_time');
var start_date = uci.get('firewall', section_id, 'start_date');
var stop_date = uci.get('firewall', section_id, 'stop_date');
if (weekdays || monthdays || start_time || stop_time || start_date || stop_date )
return _('Time restrictions are enabled for this rule');
return null;
};
o = s.taboption('advanced', form.ListValue, 'direction', _('Match device'));
o.modalonly = true;
@ -287,27 +296,52 @@ return view.extend({
o.multiple = true;
o.custom = true;
o.cast = 'table';
o.placeholder = _('any');
o.value('', 'any');
o.placeholder = _('any/all');
o.value('address-mask-reply');
o.value('address-mask-request');
o.value('address-unreachable'); /* icmpv6 1:3 */
o.value('bad-header'); /* icmpv6 4:0 */
o.value('certification-path-solicitation-message'); /* icmpv6 148 */
o.value('certification-path-advertisement-message'); /* icmpv6 149 */
o.value('communication-prohibited');
o.value('destination-unreachable');
o.value('duplicate-address-request'); /* icmpv6 157 */
o.value('duplicate-address-confirmation'); /* icmpv6 158 */
o.value('echo-reply');
o.value('echo-request');
o.value('extended-echo-request'); /* icmpv6 160 */
o.value('extended-echo-reply'); /* icmpv6 161 */
o.value('fmipv6-message'); /* icmpv6 154 */
o.value('fragmentation-needed');
o.value('home-agent-address-discovery-reply-message'); /* icmpv6 145 */
o.value('home-agent-address-discovery-request-message'); /* icmpv6 144 */
o.value('host-precedence-violation');
o.value('host-prohibited');
o.value('host-redirect');
o.value('host-unknown');
o.value('host-unreachable');
o.value('ilnpv6-locator-update-message'); /* icmpv6 156 */
o.value('inverse-neighbour-discovery-advertisement-message'); /* icmpv6 142 */
o.value('inverse-neighbour-discovery-solicitation-message'); /* icmpv6 141 */
o.value('ip-header-bad');
o.value('mobile-prefix-advertisement'); /* icmpv6 147 */
o.value('mobile-prefix-solicitation'); /* icmpv6 146 */
o.value('mpl-control-message'); /* icmpv6 159 */
o.value('multicast-listener-query'); /* icmpv6 130 */
o.value('multicast-listener-report'); /* icmpv6 131 */
o.value('multicast-listener-done'); /* icmpv6 132 */
o.value('multicast-router-advertisement'); /* icmpv6 151 */
o.value('multicast-router-solicitation'); /* icmpv6 152 */
o.value('multicast-router-termination'); /* icmpv6 153 */
o.value('neighbour-advertisement');
o.value('neighbour-solicitation');
o.value('network-prohibited');
o.value('network-redirect');
o.value('network-unknown');
o.value('network-unreachable');
o.value('no-route'); /* icmpv6 1:0 */
o.value('node-info-query'); /* icmpv6 139 */
o.value('node-info-response'); /* icmpv6 140 */
o.value('packet-too-big');
o.value('parameter-problem');
o.value('port-unreachable');
@ -316,7 +350,9 @@ return view.extend({
o.value('redirect');
o.value('required-option-missing');
o.value('router-advertisement');
o.value('router-renumbering'); /* icmpv6 138 */
o.value('router-solicitation');
o.value('rpl-control-message'); /* icmpv6 155 */
o.value('source-quench');
o.value('source-route-failed');
o.value('time-exceeded');
@ -328,6 +364,9 @@ return view.extend({
o.value('TOS-network-unreachable');
o.value('ttl-zero-during-reassembly');
o.value('ttl-zero-during-transit');
o.value('v2-multicast-listener-report'); /* icmpv6 143 */
o.value('unknown-header-type'); /* icmpv6 4:1 */
o.value('unknown-option'); /* icmpv6 4:2 */
o.depends({ proto: 'icmp', '!contains': true });
o.depends({ proto: 'icmpv6', '!contains': true });
@ -337,6 +376,14 @@ return view.extend({
o.allowany = true;
o.allowlocal = 'src';
o = s.taboption('advanced', form.Value, 'ipset', _('Use ipset'));
uci.sections('firewall', 'ipset', function(s) {
if (typeof(s.name) == 'string')
o.value(s.name, s.comment ? '%s (%s)'.format(s.name, s.comment) : s.name);
});
o.modalonly = true;
o.rmempty = true;
fwtool.addMACOption(s, 'advanced', 'src_mac', _('Source MAC address'), null, hosts);
fwtool.addIPOption(s, 'general', 'src_ip', _('Source address'), null, '', hosts, true);
@ -420,9 +467,11 @@ return view.extend({
fwtool.addLimitOption(s);
fwtool.addLimitBurstOption(s);
o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'),
_('Passes additional arguments to iptables. Use with care!'));
o.modalonly = true;
if (!L.hasSystemFeature('firewall4')) {
o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'),
_('Passes additional arguments to iptables. Use with care!'));
o.modalonly = true;
}
o = s.taboption('timed', form.MultiValue, 'weekdays', _('Week Days'));
o.modalonly = true;
@ -451,11 +500,11 @@ return view.extend({
for (var i = 1; i <= 31; i++)
o.value(i);
o = s.taboption('timed', form.Value, 'start_time', _('Start Time (hh.mm.ss)'));
o = s.taboption('timed', form.Value, 'start_time', _('Start Time (hh:mm:ss)'));
o.modalonly = true;
o.datatype = 'timehhmmss';
o = s.taboption('timed', form.Value, 'stop_time', _('Stop Time (hh.mm.ss)'));
o = s.taboption('timed', form.Value, 'stop_time', _('Stop Time (hh:mm:ss)'));
o.modalonly = true;
o.datatype = 'timehhmmss';

View file

@ -9,6 +9,10 @@
'require tools.widgets as widgets';
function rule_proto_txt(s) {
var family = (uci.get('firewall', s, 'family') || '').toLowerCase().replace(/^(?:all|\*)$/, 'any');
var sip = uci.get('firewall', s, 'src_ip') || '';
var dip = uci.get('firewall', s, 'dest_ip') || '';
var rwip = uci.get('firewall', s, 'snat_ip') || '';
var proto = L.toArray(uci.get('firewall', s, 'proto')).filter(function(p) {
return (p != '*' && p != 'any' && p != 'all');
}).map(function(p) {
@ -19,7 +23,7 @@ function rule_proto_txt(s) {
};
});
m = String(uci.get('firewall', s, 'mark')).match(/^(!\s*)?(0x[0-9a-f]{1,8}|[0-9]{1,10})(?:\/(0x[0-9a-f]{1,8}|[0-9]{1,10}))?$/i);
var m = String(uci.get('firewall', s, 'mark')).match(/^(!\s*)?(0x[0-9a-f]{1,8}|[0-9]{1,10})(?:\/(0x[0-9a-f]{1,8}|[0-9]{1,10}))?$/i);
var f = m ? {
val: m[0].toUpperCase().replace(/X/g, 'x'),
inv: m[1],
@ -27,7 +31,9 @@ function rule_proto_txt(s) {
mask: m[3] ? '0x%02X'.format(+m[3]) : null
} : null;
return fwtool.fmt(_('Forwarded IPv4%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</var>}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}'), {
return fwtool.fmt(_('Forwarded %{ipv6?%{ipv4?<var>IPv4</var> and <var>IPv6</var>:<var>IPv6</var>}:<var>IPv4</var>}%{proto?, protocol %{proto#%{next?, }<var>%{item.name}</var>}}%{mark?, mark <var%{mark.inv? data-tooltip="Match fwmarks except %{mark.num}%{mark.mask? with mask %{mark.mask}}.":%{mark.mask? data-tooltip="Mask fwmark value with %{mark.mask} before compare."}}>%{mark.val}</var>}'), {
ipv4: (family == 'ipv4' || family == 'any' || (!family && sip.indexOf(':') == -1 && dip.indexOf(':') == -1 && rwip.indexOf(':') == -1)),
ipv6: (family == 'ipv6' || family == 'any' || (!family && (sip.indexOf(':') != -1 || dip.indexOf(':') != -1 || rwip.indexOf(':') != -1))),
proto: proto,
mark: f
});
@ -37,7 +43,7 @@ function rule_src_txt(s, hosts) {
var z = uci.get('firewall', s, 'src');
return fwtool.fmt(_('From %{src}%{src_device?, interface <var>%{src_device}</var>}%{src_ip?, IP %{src_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{src_port?, port %{src_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
src: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName(null) }, [E('em', _('any zone'))]),
src: E('span', { 'class': 'zonebadge', 'style': fwmodel.getZoneColorStyle(null) }, [E('em', _('any zone'))]),
src_ip: fwtool.map_invert(uci.get('firewall', s, 'src_ip'), 'toLowerCase'),
src_port: fwtool.map_invert(uci.get('firewall', s, 'src_port'))
});
@ -47,7 +53,7 @@ function rule_dest_txt(s) {
var z = uci.get('firewall', s, 'src');
return fwtool.fmt(_('To %{dest}%{dest_device?, via interface <var>%{dest_device}</var>}%{dest_ip?, IP %{dest_ip#%{next?, }<var%{item.inv? data-tooltip="Match IP addresses except %{item.val}."}>%{item.ival}</var>}}%{dest_port?, port %{dest_port#%{next?, }<var%{item.inv? data-tooltip="Match ports except %{item.val}."}>%{item.ival}</var>}}'), {
dest: E('span', { 'class': 'zonebadge', 'style': 'background-color:' + fwmodel.getColorForName((z && z != '*') ? z : null) }, [(z == '*') ? E('em', _('any zone')) : (z || E('em', _('this device')))]),
dest: E('span', { 'class': 'zonebadge', 'style': fwmodel.getZoneColorStyle(z) }, [(z == '*') ? E('em', _('any zone')) : (z ? E('strong', z) : E('em', _('this device')))]),
dest_ip: fwtool.map_invert(uci.get('firewall', s, 'dest_ip'), 'toLowerCase'),
dest_port: fwtool.map_invert(uci.get('firewall', s, 'dest_port')),
dest_device: uci.get('firewall', s, 'device')
@ -91,6 +97,44 @@ function rule_target_txt(s) {
}
}
function validate_opt_family(m, section_id, opt) {
var sopt = m.section.getOption('src_ip'),
dopt = m.section.getOption('dest_ip'),
rwopt = m.section.getOption('snat_ip'),
fmopt = m.section.getOption('family'),
tgopt = m.section.getOption('target');
if (!sopt.isValid(section_id) && opt != 'src_ip')
return true;
if (!dopt.isValid(section_id) && opt != 'dest_ip')
return true;
if (!rwopt.isValid(section_id) && opt != 'snat_ip')
return true;
if (!fmopt.isValid(section_id) && opt != 'family')
return true;
if (!tgopt.isValid(section_id) && opt != 'target')
return true;
var sip = sopt.formvalue(section_id) || '',
dip = dopt.formvalue(section_id) || '',
rwip = rwopt.formvalue(section_id) || '',
fm = fmopt.formvalue(section_id) || '',
tg = tgopt.formvalue(section_id);
if (fm == 'ipv6' && (sip.indexOf(':') != -1 || sip == '') && (dip.indexOf(':') != -1 || dip == '') && ((rwip.indexOf(':') != -1 && tg == 'SNAT') || rwip == ''))
return true;
if (fm == 'ipv4' && (sip.indexOf(':') == -1) && (dip.indexOf(':') == -1) && ((rwip.indexOf(':') == -1 && tg == 'SNAT') || rwip == ''))
return true;
if (fm == '' || fm == 'any') {
if ((sip.indexOf(':') != -1 || sip == '') && (dip.indexOf(':') != -1 || dip == '') && ((rwip.indexOf(':') != -1 && tg == 'SNAT') || rwip == ''))
return true;
if ((sip.indexOf(':') == -1) && (dip.indexOf(':') == -1) && ((rwip.indexOf(':') == -1 && tg == 'SNAT') || rwip == ''))
return true;
}
return _('Address family, source address, destination address, rewrite IP address must match');
}
return view.extend({
callHostHints: rpc.declare({
object: 'luci-rpc',
@ -123,6 +167,7 @@ return view.extend({
var hosts = data[0],
devs = data[1],
m, s, o;
var fw4 = L.hasSystemFeature('firewall4');
m = new form.Map('firewall', _('Firewall - NAT Rules'),
_('NAT rules allow fine grained control over the source IP to use for outbound or forwarded traffic.'));
@ -131,6 +176,7 @@ return view.extend({
s.addremove = true;
s.anonymous = true;
s.sortable = true;
s.cloneable = true;
s.tab('general', _('General Settings'));
s.tab('advanced', _('Advanced Settings'));
@ -166,6 +212,33 @@ return view.extend({
o.default = o.enabled;
o.editable = true;
if (fw4) {
o = s.taboption('general', form.ListValue, 'family', _('Restrict to address family'));
o.modalonly = true;
o.rmempty = true;
o.value('any', _('IPv4 and IPv6'));
o.value('ipv4', _('IPv4 only'));
o.value('ipv6', _('IPv6 only'));
o.value('', _('automatic')); // infer from zone or used IP addresses
o.cfgvalue = function(section_id) {
var val = this.map.data.get(this.map.config, section_id, 'family');
if (!val)
return '';
else if (val == 'any' || val == 'all' || val == '*')
return 'any';
else if (val == 'inet' || String(val).indexOf('4') != -1)
return 'ipv4';
else if (String(val).indexOf('6') != -1)
return 'ipv6';
};
o.validate = function(section_id, value) {
fwtool.updateHostHints(this.map, section_id, 'src_ip', value, hosts);
fwtool.updateHostHints(this.map, section_id, 'dest_ip', value, hosts);
return !fw4?true:validate_opt_family(this, section_id, 'family');
};
}
o = s.taboption('general', fwtool.CBIProtocolSelect, 'proto', _('Protocol'));
o.modalonly = true;
o.default = 'all';
@ -178,9 +251,12 @@ return view.extend({
o.default = 'lan';
o = fwtool.addIPOption(s, 'general', 'src_ip', _('Source address'),
_('Match forwarded traffic from this IP or range.'), 'ipv4', hosts);
_('Match forwarded traffic from this IP or range.'), !fw4?'ipv4':'', hosts);
o.rmempty = true;
o.datatype = 'neg(ipmask4)';
o.datatype = !fw4?'neg(ipmask4("true"))':'neg(ipmask("true"))';
o.validate = function(section_id, value) {
return !fw4?true:validate_opt_family(this, section_id, 'src_ip');
};
o = s.taboption('general', form.Value, 'src_port', _('Source port'),
_('Match forwarded traffic originating from the given source port or port range.'));
@ -192,9 +268,12 @@ return view.extend({
o.depends({ proto: 'udp', '!contains': true });
o = fwtool.addIPOption(s, 'general', 'dest_ip', _('Destination address'),
_('Match forwarded traffic directed at the given IP address.'), 'ipv4', hosts);
_('Match forwarded traffic directed at the given IP address.'), !fw4?'ipv4':'', hosts);
o.rmempty = true;
o.datatype = 'neg(ipmask4)';
o.datatype = !fw4?'neg(ipmask4("true"))':'neg(ipmask("true"))';
o.validate = function(section_id, value) {
return !fw4?true:validate_opt_family(this, section_id, 'dest_ip');
};
o = s.taboption('general', form.Value, 'dest_port', _('Destination port'),
_('Match forwarded traffic directed at the given destination port or port range.'));
@ -211,20 +290,22 @@ return view.extend({
o.value('SNAT', _('SNAT - Rewrite to specific source IP or port'));
o.value('MASQUERADE', _('MASQUERADE - Automatically rewrite to outbound interface IP'));
o.value('ACCEPT', _('ACCEPT - Disable address rewriting'));
o.validate = function(section_id, value) {
return !fw4?true:validate_opt_family(this, section_id, 'target');
};
o = fwtool.addLocalIPOption(s, 'general', 'snat_ip', _('Rewrite IP address'),
_('Rewrite matched traffic to the specified source IP address.'), devs);
o.placeholder = null;
o.depends('target', 'SNAT');
o.validate = function(section_id, value) {
var port = this.map.lookupOption('snat_port', section_id),
a = this.formvalue(section_id),
p = port ? port[0].formvalue(section_id) : null;
var a = this.formvalue(section_id),
p = this.section.formvalue(section_id, 'snat_port');
if ((a == null || a == '') && (p == null || p == '') && value == '')
return _('A rewrite IP must be specified!');
return true;
return !fw4?true:validate_opt_family(this, section_id, 'snat_ip');
};
o = s.taboption('general', form.Value, 'snat_port', _('Rewrite port'),
@ -236,6 +317,17 @@ return view.extend({
o.depends({ proto: 'tcp', '!contains': true });
o.depends({ proto: 'udp', '!contains': true });
var have_fw4 = L.hasSystemFeature('firewall4')
if (!have_fw4) {
o = s.taboption('advanced', form.Value, 'ipset', _('Use ipset'));
uci.sections('firewall', 'ipset', function(s) {
if (typeof(s.name) == 'string')
o.value(s.name, s.comment ? '%s (%s)'.format(s.name, s.comment) : s.name);
});
o.modalonly = true;
o.rmempty = true;
}
o = s.taboption('advanced', widgets.DeviceSelect, 'device', _('Outbound device'),
_('Matches forwarded traffic using the specified outbound network device.'));
o.noaliases = true;
@ -246,10 +338,12 @@ return view.extend({
fwtool.addLimitOption(s);
fwtool.addLimitBurstOption(s);
o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'),
_('Passes additional arguments to iptables. Use with care!'));
o.modalonly = true;
o.rmempty = true;
if (!have_fw4) {
o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'),
_('Passes additional arguments to iptables. Use with care!'));
o.modalonly = true;
o.rmempty = true;
}
o = s.taboption('timed', form.MultiValue, 'weekdays', _('Week Days'));
o.modalonly = true;
@ -278,11 +372,11 @@ return view.extend({
for (var i = 1; i <= 31; i++)
o.value(i);
o = s.taboption('timed', form.Value, 'start_time', _('Start Time (hh.mm.ss)'));
o = s.taboption('timed', form.Value, 'start_time', _('Start Time (hh:mm:ss)'));
o.modalonly = true;
o.datatype = 'timehhmmss';
o = s.taboption('timed', form.Value, 'stop_time', _('Stop Time (hh.mm.ss)'));
o = s.taboption('timed', form.Value, 'stop_time', _('Stop Time (hh:mm:ss)'));
o.modalonly = true;
o.datatype = 'timehhmmss';

View file

@ -33,6 +33,7 @@ return view.extend({
var ctHelpers = data[0],
fwDefaults = data[1],
m, s, o, inp, out;
var fw4 = L.hasSystemFeature('firewall4');
m = new form.Map('firewall', _('Firewall - Zone Settings'),
_('The firewall creates zones over your network interfaces to control network traffic flow.'));
@ -41,7 +42,20 @@ return view.extend({
s.anonymous = true;
s.addremove = false;
o = s.option(form.Flag, 'syn_flood', _('Enable SYN-flood protection'));
o = s.option(form.Flag, 'synflood_protect', _('Enable SYN-flood protection'));
o.cfgvalue = function(section_id) {
var val = uci.get('firewall', section_id, 'synflood_protect');
return (val != null) ? val : uci.get('firewall', section_id, 'syn_flood');
};
o.write = function(section_id, value) {
uci.unset('firewall', section_id, 'syn_flood');
uci.set('firewall', section_id, 'synflood_protect', value);
};
o.remove = function(section_id) {
uci.unset('firewall', section_id, 'syn_flood');
uci.unset('firewall', section_id, 'synflood_protect');
};
o = s.option(form.Flag, 'drop_invalid', _('Drop invalid packets'));
var p = [
@ -60,21 +74,27 @@ return view.extend({
if (L.hasSystemFeature('offloading')) {
s = m.section(form.TypedSection, 'defaults', _('Routing/NAT Offloading'),
_('Experimental feature. Not fully compatible with QoS/SQM.'));
_('Not fully compatible with QoS/SQM.'));
s.anonymous = true;
s.addremove = false;
o = s.option(form.Flag, 'flow_offloading',
_('Software flow offloading'),
_('Software based offloading for routing/NAT'));
o.optional = true;
o = s.option(form.Flag, 'flow_offloading_hw',
_('Hardware flow offloading'),
_('Requires hardware NAT support. Implemented at least for mt7621'));
o.optional = true;
o.depends('flow_offloading', '1');
o = s.option(form.RichListValue, "offloading_type", _("Flow offloading type"));
o.value('0', _("None"));
o.value('1', _("Software flow offloading"), _('Software based offloading for routing/NAT.'));
o.value('2', _("Hardware flow offloading"), _('Hardware based offloading for routing with/without NAT.') + ' ' + _(' Requires hardware NAT support.'));
o.optional = false;
o.load = function (section_id) {
var flow_offloading = uci.get('firewall', section_id, 'flow_offloading');
var flow_offloading_hw = uci.get('firewall', section_id, 'flow_offloading_hw');
return (flow_offloading === '1')
? (flow_offloading_hw === '1' ? '2' : '1')
: '0';
};
o.write = function(section_id, value) {
uci.set('firewall', section_id, 'flow_offloading', value === '0' ? null : '1');
uci.set('firewall', section_id, 'flow_offloading_hw', value === '2' ? '1' : null);
};
}
@ -82,6 +102,7 @@ return view.extend({
s.addremove = true;
s.anonymous = true;
s.sortable = true;
s.nodescriptions = true;
s.handleRemove = function(section_id, ev) {
return firewall.deleteZone(section_id).then(L.bind(function() {
@ -129,7 +150,7 @@ return view.extend({
var p = [
s.taboption('general', form.ListValue, 'input', _('Input')),
s.taboption('general', form.ListValue, 'output', _('Output')),
s.taboption('general', form.ListValue, 'forward', _('Forward'))
s.taboption('general', form.ListValue, 'forward', _('Intra zone forward'))
];
for (var i = 0; i < p.length; i++) {
@ -143,13 +164,29 @@ return view.extend({
p[1].default = fwDefaults.getOutput();
p[2].default = fwDefaults.getForward();
o = s.taboption('general', form.Flag, 'masq', _('Masquerading'));
o = s.taboption('general', form.Flag, 'masq', _('Masquerading'),
_('Enable network address and port translation IPv4 (NAT4 or NAPT4) for outbound traffic on this zone. This is typically enabled on the <em>wan</em> zone.'));
o.editable = true;
o.tooltip = function(section_id) {
var family = uci.get('firewall', section_id, 'family')
var masq_src = uci.get('firewall', section_id, 'masq_src')
var masq_dest = uci.get('firewall', section_id, 'masq_dest')
if ((!family || family.indexOf('6') == -1) && (masq_src || masq_dest))
return _('Limited masquerading enabled');
return null;
};
/*
o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone'));
o.editable = true;
o.depends('masq', '1');
o = s.taboption('general', form.Flag, 'fullcone6', _('Full Cone IPv6'));
o.editable = true;
o.depends('masq', '1');
*/
o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamping'));
o.modalonly = true;
@ -161,21 +198,24 @@ return view.extend({
};
o.write = function(section_id, formvalue) {
var name = uci.get('firewall', section_id, 'name'),
cfgvalue = this.cfgvalue(section_id);
cfgvalue = this.cfgvalue(section_id),
oldNetworks = L.toArray(cfgvalue),
newNetworks = L.toArray(formvalue);
/*
if (typeof(cfgvalue) == 'string' && Array.isArray(formvalue) && (cfgvalue == formvalue.join(' ')))
oldNetworks.sort();
newNetworks.sort();
if (oldNetworks.join(' ') == newNetworks.join(' '))
return;
*/
var tasks = [ firewall.getZone(name) ];
if (Array.isArray(formvalue))
for (var i = 0; i < formvalue.length; i++) {
var netname = formvalue[i];
tasks.push(network.getNetwork(netname).then(function(net) {
for (var i = 0; i < newNetworks.length; i++) {
var netname = newNetworks[i];
tasks.push(network.getNetwork(netname).then(L.bind(function(netname, net) {
return net || network.addNetwork(netname, { 'proto': 'none' });
}));
}, this, netname)));
}
return Promise.all(tasks).then(function(zone_networks) {
@ -204,10 +244,24 @@ return view.extend({
o.multiple = true;
o = s.taboption('advanced', form.DynamicList, 'subnet', _('Covered subnets'), _('Use this option to classify zone traffic by source or destination subnet instead of networks or devices.'));
o.datatype = 'neg(cidr)';
o.datatype = 'neg(cidr("true"))';
o.modalonly = true;
o.multiple = true;
if (fw4) {
o = s.taboption('advanced', form.Flag, 'masq6', _('IPv6 Masquerading'),
_('Enable network address and port translation IPv6 (NAT6 or NAPT6) for outbound traffic on this zone.'));
o.modalonly = true;
o.tooltip = function(section_id) {
var family = uci.get('firewall', section_id, 'family')
var masq_src = uci.get('firewall', section_id, 'masq_src')
var masq_dest = uci.get('firewall', section_id, 'masq_dest')
if ((!family || family.indexOf('6') >= 0) && (masq_src || masq_dest))
return _('Limited masquerading enabled');
return null;
};
}
o = s.taboption('advanced', form.ListValue, 'family', _('Restrict to address family'));
o.value('', _('IPv4 and IPv6'));
o.value('ipv4', _('IPv4 only'));
@ -215,16 +269,24 @@ return view.extend({
o.modalonly = true;
o = s.taboption('advanced', form.DynamicList, 'masq_src', _('Restrict Masquerading to given source subnets'));
o.depends('family', '');
o.depends('family', 'ipv4');
o.datatype = 'list(neg(or(uciname,hostname,ipmask4)))';
if (fw4) {
o.datatype = 'list(neg(or(uciname,hostname,ipmask)))';
} else {
o.depends('family', '');
o.depends('family', 'ipv4');
o.datatype = 'list(neg(or(uciname,hostname,ipmask4)))';
}
o.placeholder = '0.0.0.0/0';
o.modalonly = true;
o = s.taboption('advanced', form.DynamicList, 'masq_dest', _('Restrict Masquerading to given destination subnets'));
o.depends('family', '');
o.depends('family', 'ipv4');
o.datatype = 'list(neg(or(uciname,hostname,ipmask4)))';
if (fw4) {
o.datatype = 'list(neg(or(uciname,hostname,ipmask)))';
} else {
o.depends('family', '');
o.depends('family', 'ipv4');
o.datatype = 'list(neg(or(uciname,hostname,ipmask4)))';
}
o.placeholder = '0.0.0.0/0';
o.modalonly = true;
@ -239,8 +301,7 @@ return view.extend({
o.depends('auto_helper', '0');
o.modalonly = true;
for (var i = 0; i < ctHelpers.length; i++)
//o.value(ctHelpers[i].name, '<span class="hide-close">%s (%s)</span><span class="hide-open">%s</span>'.format(ctHelpers[i].description, ctHelpers[i].name.toUpperCase(), ctHelpers[i].name.toUpperCase()));
o.value(ctHelpers[i].name, '%s (%s)'.format(ctHelpers[i].description, ctHelpers[i].name.toUpperCase()));
o.value(ctHelpers[i].name, E('<span><span class="hide-close">%s (%s)</span><span class="hide-open">%s</span></span>'.format(ctHelpers[i].description, ctHelpers[i].name.toUpperCase(), ctHelpers[i].name.toUpperCase())));
o = s.taboption('advanced', form.Flag, 'log', _('Enable logging on this zone'));
o.modalonly = true;
@ -250,32 +311,34 @@ return view.extend({
o.placeholder = '10/minute';
o.modalonly = true;
o = s.taboption('extra', form.DummyValue, '_extrainfo');
o.rawhtml = true;
o.modalonly = true;
o.cfgvalue = function(section_id) {
return _('Passing raw iptables arguments to source and destination traffic classification rules allows to match packets based on other criteria than interfaces or subnets. These options should be used with extreme care as invalid values could render the firewall ruleset broken, completely exposing all services.');
};
if (!L.hasSystemFeature('firewall4')) {
o = s.taboption('extra', form.DummyValue, '_extrainfo');
o.rawhtml = true;
o.modalonly = true;
o.cfgvalue = function(section_id) {
return _('Passing raw iptables arguments to source and destination traffic classification rules allows to match packets based on other criteria than interfaces or subnets. These options should be used with extreme care as invalid values could render the firewall ruleset broken, completely exposing all services.');
};
o = s.taboption('extra', form.Value, 'extra_src', _('Extra source arguments'), _('Additional raw <em>iptables</em> arguments to classify zone source traffic, e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic.'));
o.modalonly = true;
o.cfgvalue = function(section_id) {
return uci.get('firewall', section_id, 'extra_src') || uci.get('firewall', section_id, 'extra');
};
o.write = function(section_id, value) {
uci.unset('firewall', section_id, 'extra');
uci.set('firewall', section_id, 'extra_src', value);
};
o = s.taboption('extra', form.Value, 'extra_src', _('Extra source arguments'), _('Additional raw <em>iptables</em> arguments to classify zone source traffic, e.g. <code>-p tcp --sport 443</code> to only match inbound HTTPS traffic.'));
o.modalonly = true;
o.cfgvalue = function(section_id) {
return uci.get('firewall', section_id, 'extra_src') || uci.get('firewall', section_id, 'extra');
};
o.write = function(section_id, value) {
uci.unset('firewall', section_id, 'extra');
uci.set('firewall', section_id, 'extra_src', value);
};
o = s.taboption('extra', form.Value, 'extra_dest', _('Extra destination arguments'), _('Additional raw <em>iptables</em> arguments to classify zone destination traffic, e.g. <code>-p tcp --dport 443</code> to only match outbound HTTPS traffic.'));
o.modalonly = true;
o.cfgvalue = function(section_id) {
return uci.get('firewall', section_id, 'extra_dest') || uci.get('firewall', section_id, 'extra_src') || uci.get('firewall', section_id, 'extra');
};
o.write = function(section_id, value) {
uci.unset('firewall', section_id, 'extra');
uci.set('firewall', section_id, 'extra_dest', value);
};
o = s.taboption('extra', form.Value, 'extra_dest', _('Extra destination arguments'), _('Additional raw <em>iptables</em> arguments to classify zone destination traffic, e.g. <code>-p tcp --dport 443</code> to only match outbound HTTPS traffic.'));
o.modalonly = true;
o.cfgvalue = function(section_id) {
return uci.get('firewall', section_id, 'extra_dest') || uci.get('firewall', section_id, 'extra_src') || uci.get('firewall', section_id, 'extra');
};
o.write = function(section_id, value) {
uci.unset('firewall', section_id, 'extra');
uci.set('firewall', section_id, 'extra_dest', value);
};
}
o = s.taboption('general', form.DummyValue, '_forwardinfo');
o.rawhtml = true;

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more