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

Merge branch 'develop'

This commit is contained in:
suyuan 2021-04-03 09:22:13 +08:00
commit 676eeef761
53 changed files with 1942 additions and 20634 deletions

View file

@ -9,7 +9,7 @@ jobs:
build:
strategy:
matrix:
OMR_TARGET: [rpi2, rpi4, x86_64, 4018, 4019]
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r64, rpi2, rpi4, x86_64, 4018, 4019]
runs-on: ubuntu-latest
continue-on-error: true

View file

@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-12-15 14:46+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationsdsvpn/fr/>\n"
@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:35
msgid "Client"
@ -21,7 +21,7 @@ msgstr "DSVPN"
#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:31
msgid "Enabled"
msgstr "Activer"
msgstr "Activé"
#: luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json:3
msgid "Grant access to DSVPN"

View file

@ -32,6 +32,7 @@ return L.view.extend({
s.tab('advanced', _('Advanced Settings'));
o = s.taboption('general', form.Flag, 'enable', _('Enabled'));
o.rmempty = false;
o = s.taboption('general',form.Value, 'label', _('Label'));
o.rmempty = true;

View file

@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-03-28 18:23+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"glorytun-tcp/fr/>\n"
@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:32
msgid "Advanced Settings"
@ -20,7 +20,7 @@ msgstr "Client"
#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:34
msgid "Enabled"
msgstr "Activer"
msgstr "Activé"
#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68
msgid "Force fallback cipher"

View file

@ -40,11 +40,11 @@ return L.view.extend({
s.tab('advanced', _('Advanced Settings'));
o = s.taboption('general', form.Flag, 'enable', _('Enabled'));
o.rmempty = false;
o = s.taboption('general',form.Value, 'label', _('Label'));
o.rmempty = true;
o = s.taboption('general', form.ListValue, 'mode', _('Mode'));
o.value('to',_('Client'));
o.value('from',_('Server'));

View file

@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-12-15 14:46+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationsglorytun-udp/fr/>\n"
@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:40
msgid "Advanced Settings"
@ -28,7 +28,7 @@ msgstr "Détection dynamique de la vitesse"
#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:42
msgid "Enabled"
msgstr "Activer"
msgstr "Activé"
#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76
msgid "Force fallback cipher"

View file

@ -74,6 +74,7 @@ return L.view.extend({
o = s.taboption('advanced', form.Flag, 'cleartext_data', _('Disable encryption'));
o.default = o.disabled;
o.rmempty = false;
o = s.taboption('advanced', form.Value, 'loss_tolerance', _('Loss tolerance'));
o.default = '50';

View file

@ -1,6 +1,6 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2020-12-15 14:46+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationsmlvpn/fr/>\n"
@ -8,7 +8,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:32
msgid "Advanced Settings"
@ -20,7 +20,7 @@ msgstr "Client"
#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:34
msgid "Enabled"
msgstr "Activer"
msgstr "Activé"
#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:45
msgid "First Port"

View file

@ -49,6 +49,7 @@ _bypass_domains() {
domain="$(echo '"$domain"' | sed 's:*::')"
domainlist=""
# construct list of domains to query
i=0
for tld in $tlds; do
i=$((i+1))
# trim off header
@ -365,6 +366,7 @@ _bypass_proto() {
if [ "$(echo $domain | grep '\.$')" != "" ]; then
domainlist=""
# construct list of domains to query
i=0
for tld in $tlds; do
i=$((i+1))
# trim off header

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2020-08-03 12:39+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationsomr-dscp/fr/>\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-omr-dscp/luasrc/model/cbi/dscp-domains.lua:21
#: luci-app-omr-dscp/luasrc/model/cbi/dscp.lua:72
@ -89,7 +89,7 @@ msgstr "Ports de destination"
#: luci-app-omr-dscp/luasrc/model/cbi/dscp.lua:10
msgid "Differentiated services"
msgstr ""
msgstr "Services différenciés"
#: luci-app-omr-dscp/luasrc/model/cbi/dscp.lua:28
msgid "Direction"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2020-09-30 08:50+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationsomr-quota/fr/>\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-omr-quota/luasrc/view/omr-quota/cbi-select-add.htm:8
msgid "Add"
@ -43,7 +43,7 @@ msgstr "Quota"
#: luci-app-omr-quota/luasrc/model/cbi/quota/quota.lua:27
msgid "RX quota (kbit)"
msgstr ""
msgstr "Quota de réception (RX en kbit)"
#: luci-app-omr-quota/luasrc/model/cbi/quota/quota.lua:8
msgid "Set monthly quota, when quota is reached interface state is set to down"
@ -51,11 +51,11 @@ msgstr "Configurer le quota mensuel, quand le quota est atteint l'interface est
#: luci-app-omr-quota/luasrc/model/cbi/quota/quota.lua:24
msgid "TX quota (kbit)"
msgstr ""
msgstr "Quota de transmission (TX en kbit)"
#: luci-app-omr-quota/luasrc/model/cbi/quota/quota.lua:30
msgid "TX+RX quota (kbit)"
msgstr ""
msgstr "Quota de transmission+réception (TX+RX en kbit)"
#~ msgid "Set quota, when quota is reached interface state is set to down"
#~ msgstr "Configurer le quota, quand le quota est atteint l'interface est désactivée"

View file

@ -546,6 +546,7 @@ function wizard_add()
if sectionname:match("^sss.*") then
ucic:delete("shadowsocks-libev",sectionname,"ip")
ucic:set("shadowsocks-libev",sectionname,"disabled","1")
ucic:delete("openmptcprouter","omr","ss_" .. sectionname)
end
end)
@ -882,6 +883,7 @@ function wizard_add()
if gostatus == true then
luci.sys.call("/etc/init.d/macvlan restart >/dev/null 2>/dev/null")
luci.sys.call("(env -i /bin/ubus call network reload) >/dev/null 2>/dev/null")
luci.sys.call("ip addr flush dev tun0 >/dev/null 2>/dev/null")
luci.sys.call("/etc/init.d/omr-tracker stop >/dev/null 2>/dev/null")
luci.sys.call("/etc/init.d/mptcp restart >/dev/null 2>/dev/null")
--if openmptcprouter_vps_key ~= "" then

View file

@ -261,7 +261,7 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
}
if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.wan_addr6 == "" && mArray.openmptcprouter.proxy_addr == "" && mArray.openmptcprouter.external_check == true)
{
statusMessage += '<%:No server IP address, No WAN IP address%>' + '<br/>';
statusMessage += '<%:No server IP address, No public IP address%>' + '<br/>';
}
if (mArray.openmptcprouter.service_addr !== "" && (mArray.openmptcprouter.wan_addr !== "" || mArray.openmptcprouter.wan_addr6 !== "") && mArray.openmptcprouter.vps_status == "DOWN")
{
@ -287,7 +287,7 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
statusMessage += '<%:Can\'t get public IP address from V2Ray%>' + '<br/>';
} else if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.wan_addr6 == "" && mArray.openmptcprouter.external_check == true)
{
statusMessage += '<%:No WAN IP address detected in less than 1 second%>' + '<br/>';
statusMessage += '<%:No public IP address detected in less than 1 second%>' + '<br/>';
}
if (mArray.openmptcprouter.vps_admin == false)
{
@ -570,6 +570,11 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
{
statusMessage += '<%:No Server http response after 1 second%>' + '<br />';
}
if(zonewan == "NO")
{
statusMessage += '<%:Network interface not in WAN firewall zone%>' + '<br />';
statusMessageClass = "warning";
}
if (istatus == 'ERROR' && ipaddr != '' && ipaddr == mArray.wans[i].gateway)
{
statusMessage += '<%:Wan IP and gateway are identical%>' + '<br />';
@ -614,11 +619,6 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
statusMessage += '<%:Network interface MAC address duplicated%>' + '<br />';
statusMessageClass = "error";
}
if(zonewan == "NO")
{
statusMessage += '<%:Network interface not in WAN firewall zone%>' + '<br />';
statusMessageClass = "error";
}
if(ipv6_discover == 'DETECTED')
{
statusMessage += '<%:IPv6 route received%>' + '<br />'

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -29,11 +29,11 @@ msgid "API username to retrieve personnalized settings from the server."
msgstr ""
"Nome utente API per recuperare le impostazioni personalizzate dal server."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:776
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:794
msgid "APN"
msgstr "APN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:695
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:713
msgid "Accept IPv6 RA"
msgstr ""
@ -41,7 +41,7 @@ msgstr ""
msgid "Add a new server"
msgstr "Aggiungi un nuovo server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:956
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:974
msgid "Add an interface"
msgstr "Aggiungi un'interfaccia"
@ -50,7 +50,7 @@ msgstr "Aggiungi un'interfaccia"
msgid "Advanced Settings"
msgstr "Impostazioni avanzate"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:152
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:150
msgid "Advanced settings"
msgstr "Impostazioni avanzate"
@ -74,12 +74,12 @@ msgstr ""
"Un set di istruzioni Advanced Encryption Standard (AES) è integrato nel "
"processore."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:802
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:820
msgid "Authentication Type"
msgstr "Tipo di autenticazione"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:840
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:856
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:858
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:874
msgid "Backup"
msgstr "Backup"
@ -88,7 +88,7 @@ msgstr "Backup"
msgid "Backup on server"
msgstr "Backup su server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:310
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:320
msgid "Balancing"
msgstr "Bilanciamento"
@ -100,11 +100,11 @@ msgstr "Beta"
msgid "Big time difference between the server and the router"
msgstr "Grande differenza di fuso orario tra il server e il router"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:525
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:543
msgid "Bridge"
msgstr "Ponte"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:602
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:614
msgid "Bridge can't have multipath enabled"
msgstr ""
@ -121,7 +121,7 @@ msgstr ""
"Per impostazione predefinita, il proxy viene utilizzato per qualsiasi "
"traffico che sia TCP (e UDP per V2Ray)."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:807
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:825
msgid "CHAP"
msgstr "CHAP"
@ -147,7 +147,11 @@ msgstr "Impossibile ottenere un indirizzo IP pubblico da ShadowSocks"
msgid "Can\\'t ping server"
msgstr "Impossibile eseguire il ping del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:529
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:394
msgid "China"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:547
msgid ""
"Choose MacVLAN if you want to create a virtual interface based on a physical "
"interface."
@ -155,26 +159,32 @@ msgstr ""
"Scegli MacVLAN se desideri creare un&#39;interfaccia virtuale basata su "
"un&#39;interfaccia fisica."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:463
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:549
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:608
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:481
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:567
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:626
msgid "Choose physical interface."
msgstr "Scegli l&#39;interfaccia fisica."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:150
msgid "Common server settings"
msgstr "Impostazioni comuni del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:135
msgid "Core temp:"
msgstr "Temp. Nucleo:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:415
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:560
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:389
msgid "Country"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:386
#, fuzzy
#| msgid "All router settings"
msgid "Country settings"
msgstr "Impostazioni del router"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:433
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:578
msgid "DHCP"
msgstr "DHCP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:561
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:579
#, fuzzy
#| msgid "DHCP"
msgid "DHCPv6"
@ -184,7 +194,7 @@ msgstr "DHCP"
msgid "DNS issue: can\\'t resolve hostname"
msgstr "Problema DNS: impossibile risolvere il nome host"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:294
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304
msgid "Debug"
msgstr "Debug"
@ -197,16 +207,22 @@ msgid "Default VPN"
msgstr "VPN predefinita"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:66
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:504
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:522
msgid "Delete"
msgstr "Elimina"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:702
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:729
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:750
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:720
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:747
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:768
msgid "Device"
msgstr "Dispositivo"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:253
#, fuzzy
#| msgid "Disable server ping status check"
msgid "Disable HTTP test on Server API in status page"
msgstr "Disabilitare il controllo dello stato del ping del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:203
msgid "Disable TCP Fast Open"
msgstr "Disabilita TCP Fast Open"
@ -215,11 +231,11 @@ msgstr "Disabilita TCP Fast Open"
msgid "Disable TCP Fast Open on Linux and Shadowsocks configuration"
msgstr "Disabilita TCP Fast Open su Linux e configurazione Shadowsocks"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:264
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:274
msgid "Disable default gateway"
msgstr "Disabilita il gateway predefinito"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:269
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279
msgid "Disable default gateway, no internet if VPS are down"
msgstr ""
"Disabilita il gateway predefinito, niente Internet se i VPS sono inattivi"
@ -233,16 +249,18 @@ msgid "Disable gateway ping"
msgstr "Disabilita il ping del gateway"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:243
msgid "Disable gateway ping status check"
#, fuzzy
#| msgid "Disable gateway ping status check"
msgid "Disable gateway ping check in status page"
msgstr "Disabilitare il controllo dello stato del ping del gateway"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:248
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:258
#, fuzzy
#| msgid "Disable tracebox test"
msgid "Disable interfaces auto rename"
msgstr "Disabilita il test Tracebox"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:299
msgid "Disable multipath test using tracebox"
msgstr "Disabilita il test multipath usando tracebox"
@ -253,7 +271,7 @@ msgstr ""
"Disabilita il reindirizzamento delle porte definito nel firewall dal server "
"a questo router"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:253
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:263
#, fuzzy
#| msgid "Label for the interface"
msgid "Disable renaming interfaces"
@ -263,29 +281,35 @@ msgstr "Etichetta per l&#39;interfaccia"
msgid "Disable server"
msgstr "Disabilita il server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:274
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:248
#, fuzzy
#| msgid "Disable server ping"
msgid "Disable server http test"
msgstr "Disabilita il ping del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:284
msgid "Disable server ping"
msgstr "Disabilita il ping del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289
msgid "Disable server ping status check"
msgstr "Disabilitare il controllo dello stato del ping del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:284
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:294
msgid "Disable tracebox test"
msgstr "Disabilita il test Tracebox"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:178
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:838
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:854
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:856
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:872
msgid "Disabled"
msgstr "Disabilitato"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:900
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:918
msgid "Download speed (Kb/s)"
msgstr "Velocità di download (Kb / s)"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:308
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:318
msgid "Dynamic change"
msgstr "Cambiamento dinamico"
@ -294,7 +318,7 @@ msgstr "Cambiamento dinamico"
msgid "Enable IPv6"
msgstr "Abilita IPv6"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:890
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:908
msgid "Enable SQM"
msgstr "Abilita MQ"
@ -306,13 +330,13 @@ msgstr "Abilita l&#39;offuscamento di ShadowSocks"
msgid "Enable TCP Low Latency"
msgstr "Abilita TCP bassa latenza"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:299
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:309
msgid "Enable debug logs"
msgstr "Abilita registro di debug"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:179
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:837
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:853
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:855
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:871
msgid "Enabled"
msgstr "Abilitato"
@ -330,6 +354,10 @@ msgstr ""
msgid "Filesystem is readonly"
msgstr "Il filesystem è di sola lettura"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:398
msgid "For China, set an accessible DNS and disable DNSSEC."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:167
msgid "Force retrieve all keys from server."
msgstr "Forza il recupero di tutte le chiavi dal server."
@ -338,16 +366,16 @@ msgstr "Forza il recupero di tutte le chiavi dal server."
msgid "Force retrieve settings"
msgstr "Forza il recupero delle impostazioni"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:796
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:814
msgid "GPRS only"
msgstr "Solo GPRS"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:554
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:739
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:557
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:756
msgid "Gateway DOWN"
msgstr "Tipi di pagamento"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:557
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:560
#, fuzzy
#| msgid "Gateway DOWN"
msgid "Gateway IPv6 DOWN"
@ -401,17 +429,17 @@ msgstr "IPv4 TCP SYN retries1"
msgid "IPv4 TCP SYN retries2"
msgstr "IPv4 TCP SYN retries2"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:471
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:614
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:489
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:632
msgid "IPv4 address"
msgstr "Indirizzi IPv4"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:630
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:648
msgid "IPv4 gateway"
msgstr "Gateway IPv4"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:477
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:624
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:495
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:642
msgid "IPv4 netmask"
msgstr "Netmask IPv4"
@ -419,22 +447,22 @@ msgstr "Netmask IPv4"
msgid "IPv6 Prefix"
msgstr "Prefisso IPv6"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:644
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:671
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:662
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:689
#, fuzzy
#| msgid "IPv4 address"
msgid "IPv6 address"
msgstr "Indirizzi IPv4"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:658
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:681
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:699
#, fuzzy
#| msgid "IPv4 gateway"
msgid "IPv6 gateway"
msgstr "Gateway IPv4"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:612
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:779
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:624
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:796
msgid "IPv6 route received"
msgstr "Instradamento IPv6 ricevuto"
@ -450,7 +478,7 @@ msgstr "Tunnel IPv6 GIÙ"
msgid "IPv6:"
msgstr "IPv6:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:490
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:508
msgid "Interfaces settings"
msgstr "Impostazioni delle interfacce"
@ -473,21 +501,21 @@ msgstr ""
"Tasto per configurare e recuperare altre chiavi dal server e per impostare "
"le impostazioni del server da OpenMPTCProuter."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:388
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:406
msgid "LAN interfaces settings"
msgstr "Impostazioni delle interfacce LAN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:794
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:812
msgid "LTE"
msgstr "LTE"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:399
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:510
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:417
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:528
msgid "Label"
msgstr "Etichetta"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:405
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:515
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:423
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:533
msgid "Label for the interface"
msgstr "Etichetta per l&#39;interfaccia"
@ -523,7 +551,7 @@ msgid "MPTCP may not be enabled on the server"
msgstr "MPTCP non è abilitato sul server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:372
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:880
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:898
msgid "MPTCP over VPN"
msgstr "MPTCP su VPN"
@ -539,36 +567,36 @@ msgid ""
"connection."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:524
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:542
msgid "MacVLAN"
msgstr "MacVLAN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:839
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:855
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:857
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:873
msgid "Master"
msgstr "Principale"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:314
msgid "Master interface selection"
msgstr "Selezione dell&#39;interfaccia principale"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:326
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:336
msgid "Maximum scaling CPU frequency"
msgstr "Frequenza CPU di ridimensionamento massima"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:320
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:330
msgid "Minimum scaling CPU frequency"
msgstr "Frequenza CPU con ridimensionamento minimo"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:791
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:809
msgid "Modem default"
msgstr "Impostazione predefinita del modem"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:825
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:843
msgid "Modem init timeout"
msgstr "Timeout inizializzazione modem"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:562
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:580
msgid "ModemManager"
msgstr "ModemManager"
@ -576,49 +604,55 @@ msgstr "ModemManager"
msgid "More than one default VPN is enabled"
msgstr "È abilitata più di una VPN predefinita"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:834
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:850
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:852
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:868
msgid "Multipath TCP"
msgstr "Multipath TCP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:585
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:591
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:762
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:768
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:597
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:603
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:779
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:785
msgid "Multipath current state is"
msgstr "Lo stato corrente di Multipath è"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:580
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:757
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:592
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:774
msgid "Multipath master already defined"
msgstr "Multipath master già definito"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:560
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:742
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:563
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:759
msgid "Multipath seems to be blocked on the connection"
msgstr "Multipath sembra essere bloccato sulla connessione"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:563
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:581
msgid "NCM"
msgstr "NCM"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:805
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:823
msgid "NONE"
msgstr "NESSUNO"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:607
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:619
#, fuzzy
#| msgid "Network interface duplicated"
msgid "Network interface MAC address duplicated"
msgstr "Interfaccia di rete duplicata"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:597
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:774
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:609
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:791
msgid "Network interface duplicated"
msgstr "Interfaccia di rete duplicata"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:874
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:876
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:575
#, fuzzy
#| msgid "Network interface duplicated"
msgid "Network interface not in WAN firewall zone"
msgstr "Interfaccia di rete duplicata"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:891
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:893
msgid "Network overview"
msgstr "Panoramica della rete"
@ -626,8 +660,8 @@ msgstr "Panoramica della rete"
msgid "Networks settings"
msgstr "Impostazioni reti"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:547
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:732
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:550
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:749
msgid "No IP defined"
msgstr "Nessun IP definito"
@ -635,8 +669,14 @@ msgstr "Nessun IP definito"
msgid "No IPv6 access"
msgstr "Nessun accesso IPv6"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:564
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:746
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:571
#, fuzzy
#| msgid "No Server ping response after 1 second"
msgid "No Server http response after 1 second"
msgstr "Nessuna risposta al ping del server dopo 1 secondo"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:567
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:763
msgid "No Server ping response after 1 second"
msgstr "Nessuna risposta al ping del server dopo 1 secondo"
@ -644,7 +684,7 @@ msgstr "Nessuna risposta al ping del server dopo 1 secondo"
msgid "No WAN IP address detected in less than 1 second"
msgstr "Nessun indirizzo IP WAN rilevato in meno di 1 secondo"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:631
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:648
msgid "No WAN with multipath enabled:"
msgstr ""
@ -652,16 +692,16 @@ msgstr ""
msgid "No available backup on server."
msgstr "Nessun backup disponibile sul server."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:309
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:319
msgid "No change"
msgstr "Nessun cambiamento"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:794
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:811
msgid "No data"
msgstr "Nessun dato"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:551
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:736
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:554
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:753
msgid "No gateway defined"
msgstr "Nessun gateway definito"
@ -679,10 +719,11 @@ msgid "No server defined"
msgstr "Nessun server definito"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:244
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:392
msgid "None"
msgstr "Nessuno"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:523
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:541
msgid "Normal"
msgstr "Normale"
@ -706,7 +747,7 @@ msgstr "Tipo di offuscamento"
msgid "Obfuscating will be enabled on both side"
msgstr "L&#39;offuscamento sarà abilitato su entrambi i lati"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:307
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:317
msgid "On wizard change"
msgstr "Al cambio della procedura guidata"
@ -714,7 +755,7 @@ msgstr "Al cambio della procedura guidata"
msgid "Only ShadowSocks is supported with server multiple IPs for now."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:844
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:862
msgid ""
"Only one interface must be set as \"Master\", this should be the most stable "
"interface."
@ -738,8 +779,8 @@ msgstr "OpenVPN non può essere utilizzato nella configurazione multi VPS."
msgid "Optimize for latency instead of bandwidth"
msgstr "Ottimizza per la latenza invece che per la larghezza di banda"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:416
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:566
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:434
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:584
msgid "Other"
msgstr "Altro"
@ -747,41 +788,41 @@ msgstr "Altro"
msgid "Other settings"
msgstr "Altre impostazioni"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:806
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:824
msgid "PAP"
msgstr "PAP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:808
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:826
msgid "PAP/CHAP"
msgstr "PAP/CHAP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:819
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:837
msgid "PAP/CHAP password"
msgstr "PAP/CHAP password"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:813
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:831
msgid "PAP/CHAP username"
msgstr "Nome utente PAP/CHAP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:782
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:800
msgid "PIN code"
msgstr "Codice PIN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:564
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:582
msgid "PPPoE"
msgstr "PPPoE"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:534
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:575
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:446
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:552
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:593
msgid "Physical interface"
msgstr "Interfaccia fisica"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:792
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:810
msgid "Prefer LTE"
msgstr "Preferisci LTE"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:793
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:811
msgid "Prefer UMTS"
msgstr "Preferisci UMTS"
@ -791,8 +832,8 @@ msgstr "Preferisci UMTS"
msgid "Primary server IP"
msgstr "Indirizzo IP del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:410
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:555
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:573
msgid "Protocol"
msgstr "Protocollo"
@ -808,7 +849,7 @@ msgstr "Impostazioni Proxy"
msgid "Proxy traffic:"
msgstr "Traffico proxy:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:565
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:583
msgid "QMI"
msgstr "QMI"
@ -816,7 +857,7 @@ msgstr "QMI"
msgid "Redirects all ports from server to this router"
msgstr "Reindirizza tutte le porte dal server a questo router"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:966
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:984
msgid "Reset"
msgstr ""
@ -828,8 +869,8 @@ msgstr "Ripristina backup"
msgid "Retrieve settings from server"
msgstr "Recupera le impostazioni dal server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:352
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:965
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:362
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:983
msgid "Save & Apply"
msgstr "Salva e applica"
@ -841,7 +882,7 @@ msgstr "Salva le statistiche di vnstats su disco"
msgid "Save vnstats stats"
msgstr "Salva le statistiche di vnstats"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:332
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:342
msgid "Scaling governor"
msgstr "Governatore in scala"
@ -851,7 +892,7 @@ msgstr "Governatore in scala"
msgid "Secondary server IP"
msgstr "Indirizzo IP del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:959
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:977
msgid "Select the device you want to base the interface on."
msgstr "Seleziona il dispositivo su cui vuoi basare l&#39;interfaccia."
@ -885,7 +926,7 @@ msgstr "Impostazioni server"
msgid "Server username"
msgstr "Nome utente del server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:788
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:806
msgid "Service Type"
msgstr "Tipo di servizio"
@ -893,15 +934,19 @@ msgstr "Tipo di servizio"
msgid "Set VPN to use for MPTCP over VPN."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:619
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:649
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:637
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:667
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:694
msgid "Set an IP in the same network as the modem"
msgstr "Imposta un IP nella stessa rete del modem"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:635
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:663
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:686
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:387
msgid "Set configuration for countries with some specificities."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:653
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:681
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:704
msgid "Set here IP of the modem"
msgstr "Imposta qui l&#39;IP del modem"
@ -929,14 +974,14 @@ msgstr ""
"Imposta la VPN predefinita utilizzata per UDP e ICMP quando ShadowSocks è "
"abilitato, per tutto il traffico se ShadowSocks è disabilitato."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:910
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:928
msgid ""
"Set value between 80-95% of max download speed link. 0 to disable SQM/QoS."
msgstr ""
"Impostare il valore tra l&#39;80 e il 95% della velocità massima di download "
"del collegamento"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:926
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:944
msgid ""
"Set value between 80-95% of max upload speed link. 0 to disable SQM/QoS."
msgstr ""
@ -960,12 +1005,18 @@ msgstr "ShadowSocks viene utilizzato per TCP."
msgid "ShadowSocks key"
msgstr "Chiave ShadowSocks"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:152
#, fuzzy
#| msgid "Advanced settings"
msgid "Show advanced settings"
msgstr "Impostazioni avanzate"
#: luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua:23
msgid "Show all settings"
msgstr "Mostra tutte le impostazioni"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:414
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:559
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:432
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:577
msgid "Static address"
msgstr "Indirizzo statico"
@ -973,7 +1024,7 @@ msgstr "Indirizzo statico"
msgid "Status"
msgstr "Stato proprietà"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:317
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:327
msgid "Systems settings"
msgstr "Impostazioni di sistema"
@ -1017,7 +1068,7 @@ msgstr ""
msgid "Total traffic:"
msgstr "Traffico globale:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:520
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:538
msgid "Type"
msgstr "Tipo"
@ -1030,7 +1081,7 @@ msgstr "UBOND può sostituire Glorytun con connessioni con la stessa latenza"
msgid "UBOND password"
msgstr "Password UBOND"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:795
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:813
msgid "UMTS/GPRS"
msgstr "UMTS/GPRS"
@ -1050,7 +1101,7 @@ msgstr ""
msgid "Update server"
msgstr "Aggiorna server"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:916
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:934
msgid "Upload speed (Kb/s)"
msgstr "Velocità di caricamento (Kb / s)"
@ -1059,8 +1110,8 @@ msgstr "Velocità di caricamento (Kb / s)"
msgid "Uptime:"
msgstr "Tempo di funzionamento:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:905
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:921
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:923
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:939
msgid "Used by Glorytun UDP and SQM/QoS if enabled. 0 to use default value."
msgstr "Utilizzato da Glorytun UDP e SQM / QoS se abilitato."
@ -1080,8 +1131,8 @@ msgstr "Utente V2Ray"
msgid "V2Ray user id"
msgstr "ID utente V2Ray"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:604
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:605
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:622
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:623
#, fuzzy
#| msgid "MacVLAN"
msgid "VLAN"
@ -1107,9 +1158,9 @@ msgstr "Tunnel VPN non stabilito"
msgid "Version"
msgstr "Versione"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:568
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:573
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:750
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:580
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:585
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:767
msgid "Wan IP and gateway are identical"
msgstr "IP Wan e gateway sono identici"
@ -1121,7 +1172,7 @@ msgstr ""
"Quando si abilita il controllo viene eseguito su siti esterni per ottenere "
"ogni IP WAN e l&#39;IP utilizzato per uscire."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:258
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:268
msgid "When proxy shadowsocks is used, use it for UDP if VPN down"
msgstr ""
@ -1129,20 +1180,24 @@ msgstr ""
msgid "Wizard"
msgstr "Wizard"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:393
msgid "World"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:80
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:85
msgid "You"
msgstr "Ti"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:885
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:903
msgid "You can enable MPTCP over VPN if your provider filter Multipath TCP."
msgstr "Puoi abilitare MPTCP su VPN se il tuo provider filtra Multipath TCP."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:420
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:438
msgid "You can use DHCP if you have multiple real ethernet ports."
msgstr "Puoi usare DHCP se hai più porte ethernet reali."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:570
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:588
msgid ""
"You can use DHCP if you have multiple real ethernet ports. Select other if "
"you want to use another protocol available in Network Interfaces page."
@ -1154,7 +1209,7 @@ msgstr ""
"È possibile utilizzare un prefisso IPv6 pubblico solo se si imposta un solo "
"server."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:491
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:509
msgid "You must disable DHCP on your modems and set IP in different networks."
msgstr ""
"È necessario disabilitare il DHCP sui modem e impostare l&#39;IP in reti "
@ -1164,7 +1219,7 @@ msgstr ""
msgid "You should disable IPv6 here if server doesn't provide IPv6."
msgstr "Dovresti disabilitare IPv6 qui se il server non fornisce IPv6."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:895
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:913
msgid "You should disable SQM for LTE or any interfaces with variable speed."
msgstr ""
"È necessario disabilitare SQM per LTE o qualsiasi interfaccia con velocità "
@ -1182,7 +1237,7 @@ msgstr "Il tuo IP non è stato affittato da questo router"
msgid "address:"
msgstr "Indirizzo:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:797
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:815
msgid "auto"
msgstr "Auto"
@ -1190,39 +1245,39 @@ msgstr "Auto"
msgid "empty key"
msgstr "chiave vuota"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:497
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:500
#, fuzzy
#| msgid "Add an interface"
msgid "interface:"
msgstr "Aggiungi un'interfaccia"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:481
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:712
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:484
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:729
msgid "ip address:"
msgstr "Indirizzo IP:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:485
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:488
#, fuzzy
#| msgid "ip address:"
msgid "ipv6 address:"
msgstr "Indirizzo IP:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:509
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:724
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:512
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:741
msgid "latency:"
msgstr "latenza:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:513
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:728
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:516
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:745
msgid "mtu:"
msgstr "mtu:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:619
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:781
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:636
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:798
msgid "multipath:"
msgstr "multipath:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:517
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:520
msgid "operator:"
msgstr "operatore:"
@ -1230,7 +1285,7 @@ msgstr "operatore:"
msgid "other"
msgstr "Altro"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:521
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:524
msgid "phone number:"
msgstr "numero di telefono:"
@ -1238,32 +1293,35 @@ msgstr "numero di telefono:"
msgid "range:"
msgstr "intervallo:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:525
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:528
msgid "state:"
msgstr "stato:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:622
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:784
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:639
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:801
msgid "traffic control:"
msgstr "controllo del traffico:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:489
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:716
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:492
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:733
msgid "wan address:"
msgstr "indirizzo wan:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:493
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:496
#, fuzzy
#| msgid "wan address:"
msgid "wan ipv6 address:"
msgstr "indirizzo wan:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:501
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:505
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:720
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:504
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:508
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:737
msgid "whois:"
msgstr "whois:"
#~ msgid "Common server settings"
#~ msgstr "Impostazioni comuni del server"
#~ msgid "Update VPS"
#~ msgstr "Aggiorna VPS"

File diff suppressed because it is too large Load diff

View file

@ -19,11 +19,11 @@ msgstr ""
msgid "API username to retrieve personnalized settings from the server."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:776
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:794
msgid "APN"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:695
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:713
msgid "Accept IPv6 RA"
msgstr ""
@ -31,7 +31,7 @@ msgstr ""
msgid "Add a new server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:956
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:974
msgid "Add an interface"
msgstr ""
@ -40,7 +40,7 @@ msgstr ""
msgid "Advanced Settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:152
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:150
msgid "Advanced settings"
msgstr ""
@ -60,12 +60,12 @@ msgid ""
"processor."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:802
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:820
msgid "Authentication Type"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:840
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:856
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:858
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:874
msgid "Backup"
msgstr ""
@ -74,7 +74,7 @@ msgstr ""
msgid "Backup on server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:310
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:320
msgid "Balancing"
msgstr ""
@ -86,11 +86,11 @@ msgstr ""
msgid "Big time difference between the server and the router"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:525
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:543
msgid "Bridge"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:602
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:614
msgid "Bridge can't have multipath enabled"
msgstr ""
@ -103,7 +103,7 @@ msgid ""
"By default proxy is used for any traffic that is TCP (and UDP for V2Ray)."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:807
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:825
msgid "CHAP"
msgstr ""
@ -127,32 +127,40 @@ msgstr ""
msgid "Can\\'t ping server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:529
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:394
msgid "China"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:547
msgid ""
"Choose MacVLAN if you want to create a virtual interface based on a physical "
"interface."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:463
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:549
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:608
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:481
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:567
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:626
msgid "Choose physical interface."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:150
msgid "Common server settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:135
msgid "Core temp:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:415
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:560
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:389
msgid "Country"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:386
msgid "Country settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:433
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:578
msgid "DHCP"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:561
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:579
msgid "DHCPv6"
msgstr ""
@ -160,7 +168,7 @@ msgstr ""
msgid "DNS issue: can\\'t resolve hostname"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:294
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304
msgid "Debug"
msgstr ""
@ -173,16 +181,20 @@ msgid "Default VPN"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:66
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:504
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:522
msgid "Delete"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:702
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:729
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:750
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:720
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:747
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:768
msgid "Device"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:253
msgid "Disable HTTP test on Server API in status page"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:203
msgid "Disable TCP Fast Open"
msgstr ""
@ -191,11 +203,11 @@ msgstr ""
msgid "Disable TCP Fast Open on Linux and Shadowsocks configuration"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:264
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:274
msgid "Disable default gateway"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:269
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279
msgid "Disable default gateway, no internet if VPS are down"
msgstr ""
@ -208,14 +220,14 @@ msgid "Disable gateway ping"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:243
msgid "Disable gateway ping status check"
msgid "Disable gateway ping check in status page"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:248
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:258
msgid "Disable interfaces auto rename"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:299
msgid "Disable multipath test using tracebox"
msgstr ""
@ -224,7 +236,7 @@ msgid ""
"Disable ports redirection defined in firewall from server to this router"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:253
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:263
msgid "Disable renaming interfaces"
msgstr ""
@ -232,29 +244,33 @@ msgstr ""
msgid "Disable server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:274
msgid "Disable server ping"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279
msgid "Disable server ping status check"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:248
msgid "Disable server http test"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:284
msgid "Disable server ping"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289
msgid "Disable server ping status check"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:294
msgid "Disable tracebox test"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:178
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:838
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:854
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:856
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:872
msgid "Disabled"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:900
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:918
msgid "Download speed (Kb/s)"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:308
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:318
msgid "Dynamic change"
msgstr ""
@ -263,7 +279,7 @@ msgstr ""
msgid "Enable IPv6"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:890
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:908
msgid "Enable SQM"
msgstr ""
@ -275,13 +291,13 @@ msgstr ""
msgid "Enable TCP Low Latency"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:299
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:309
msgid "Enable debug logs"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:179
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:837
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:853
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:855
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:871
msgid "Enabled"
msgstr ""
@ -297,6 +313,10 @@ msgstr ""
msgid "Filesystem is readonly"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:398
msgid "For China, set an accessible DNS and disable DNSSEC."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:167
msgid "Force retrieve all keys from server."
msgstr ""
@ -305,16 +325,16 @@ msgstr ""
msgid "Force retrieve settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:796
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:814
msgid "GPRS only"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:554
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:739
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:557
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:756
msgid "Gateway DOWN"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:557
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:560
msgid "Gateway IPv6 DOWN"
msgstr ""
@ -363,17 +383,17 @@ msgstr ""
msgid "IPv4 TCP SYN retries2"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:471
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:614
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:489
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:632
msgid "IPv4 address"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:630
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:648
msgid "IPv4 gateway"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:477
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:624
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:495
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:642
msgid "IPv4 netmask"
msgstr ""
@ -381,18 +401,18 @@ msgstr ""
msgid "IPv6 Prefix"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:644
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:671
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:662
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:689
msgid "IPv6 address"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:658
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:681
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:699
msgid "IPv6 gateway"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:612
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:779
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:624
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:796
msgid "IPv6 route received"
msgstr ""
@ -408,7 +428,7 @@ msgstr ""
msgid "IPv6:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:490
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:508
msgid "Interfaces settings"
msgstr ""
@ -427,21 +447,21 @@ msgid ""
"settings from OpenMPTCProuter."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:388
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:406
msgid "LAN interfaces settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:794
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:812
msgid "LTE"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:399
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:510
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:417
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:528
msgid "Label"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:405
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:515
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:423
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:533
msgid "Label for the interface"
msgstr ""
@ -477,7 +497,7 @@ msgid "MPTCP may not be enabled on the server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:372
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:880
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:898
msgid "MPTCP over VPN"
msgstr ""
@ -491,36 +511,36 @@ msgid ""
"connection."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:524
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:542
msgid "MacVLAN"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:839
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:855
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:857
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:873
msgid "Master"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:314
msgid "Master interface selection"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:326
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:336
msgid "Maximum scaling CPU frequency"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:320
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:330
msgid "Minimum scaling CPU frequency"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:791
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:809
msgid "Modem default"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:825
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:843
msgid "Modem init timeout"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:562
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:580
msgid "ModemManager"
msgstr ""
@ -528,47 +548,51 @@ msgstr ""
msgid "More than one default VPN is enabled"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:834
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:850
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:852
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:868
msgid "Multipath TCP"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:585
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:591
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:762
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:768
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:597
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:603
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:779
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:785
msgid "Multipath current state is"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:580
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:757
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:592
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:774
msgid "Multipath master already defined"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:560
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:742
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:563
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:759
msgid "Multipath seems to be blocked on the connection"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:563
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:581
msgid "NCM"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:805
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:823
msgid "NONE"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:607
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:619
msgid "Network interface MAC address duplicated"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:597
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:774
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:609
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:791
msgid "Network interface duplicated"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:874
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:876
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:575
msgid "Network interface not in WAN firewall zone"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:891
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:893
msgid "Network overview"
msgstr ""
@ -576,8 +600,8 @@ msgstr ""
msgid "Networks settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:547
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:732
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:550
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:749
msgid "No IP defined"
msgstr ""
@ -585,16 +609,16 @@ msgstr ""
msgid "No IPv6 access"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:564
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:746
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:571
msgid "No Server http response after 1 second"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:567
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:763
msgid "No Server ping response after 1 second"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:290
msgid "No WAN IP address detected in less than 1 second"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:631
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:648
msgid "No WAN with multipath enabled:"
msgstr ""
@ -602,16 +626,16 @@ msgstr ""
msgid "No available backup on server."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:309
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:319
msgid "No change"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:794
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:811
msgid "No data"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:551
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:736
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:554
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:753
msgid "No gateway defined"
msgstr ""
@ -620,8 +644,12 @@ msgstr ""
msgid "No output"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:290
msgid "No public IP address detected in less than 1 second"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:264
msgid "No server IP address, No WAN IP address"
msgid "No server IP address, No public IP address"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:277
@ -629,10 +657,11 @@ msgid "No server defined"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:244
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:392
msgid "None"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:523
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:541
msgid "Normal"
msgstr ""
@ -654,7 +683,7 @@ msgstr ""
msgid "Obfuscating will be enabled on both side"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:307
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:317
msgid "On wizard change"
msgstr ""
@ -662,7 +691,7 @@ msgstr ""
msgid "Only ShadowSocks is supported with server multiple IPs for now."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:844
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:862
msgid ""
"Only one interface must be set as \"Master\", this should be the most stable "
"interface."
@ -684,8 +713,8 @@ msgstr ""
msgid "Optimize for latency instead of bandwidth"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:416
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:566
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:434
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:584
msgid "Other"
msgstr ""
@ -693,41 +722,41 @@ msgstr ""
msgid "Other settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:806
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:824
msgid "PAP"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:808
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:826
msgid "PAP/CHAP"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:819
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:837
msgid "PAP/CHAP password"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:813
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:831
msgid "PAP/CHAP username"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:782
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:800
msgid "PIN code"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:564
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:582
msgid "PPPoE"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:534
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:575
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:446
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:552
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:593
msgid "Physical interface"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:792
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:810
msgid "Prefer LTE"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:793
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:811
msgid "Prefer UMTS"
msgstr ""
@ -735,8 +764,8 @@ msgstr ""
msgid "Primary server IP"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:410
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:555
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:573
msgid "Protocol"
msgstr ""
@ -752,7 +781,7 @@ msgstr ""
msgid "Proxy traffic:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:565
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:583
msgid "QMI"
msgstr ""
@ -760,7 +789,7 @@ msgstr ""
msgid "Redirects all ports from server to this router"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:966
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:984
msgid "Reset"
msgstr ""
@ -772,8 +801,8 @@ msgstr ""
msgid "Retrieve settings from server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:352
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:965
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:362
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:983
msgid "Save & Apply"
msgstr ""
@ -785,7 +814,7 @@ msgstr ""
msgid "Save vnstats stats"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:332
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:342
msgid "Scaling governor"
msgstr ""
@ -793,7 +822,7 @@ msgstr ""
msgid "Secondary server IP"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:959
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:977
msgid "Select the device you want to base the interface on."
msgstr ""
@ -827,7 +856,7 @@ msgstr ""
msgid "Server username"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:788
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:806
msgid "Service Type"
msgstr ""
@ -835,15 +864,19 @@ msgstr ""
msgid "Set VPN to use for MPTCP over VPN."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:619
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:649
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:637
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:667
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:694
msgid "Set an IP in the same network as the modem"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:635
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:663
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:686
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:387
msgid "Set configuration for countries with some specificities."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:653
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:681
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:704
msgid "Set here IP of the modem"
msgstr ""
@ -863,12 +896,12 @@ msgid ""
"for all traffic if proxy is disabled."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:910
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:928
msgid ""
"Set value between 80-95% of max download speed link. 0 to disable SQM/QoS."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:926
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:944
msgid ""
"Set value between 80-95% of max upload speed link. 0 to disable SQM/QoS."
msgstr ""
@ -890,12 +923,16 @@ msgstr ""
msgid "ShadowSocks key"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:152
msgid "Show advanced settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua:23
msgid "Show all settings"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:414
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:559
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:432
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:577
msgid "Static address"
msgstr ""
@ -903,7 +940,7 @@ msgstr ""
msgid "Status"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:317
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:327
msgid "Systems settings"
msgstr ""
@ -937,7 +974,7 @@ msgstr ""
msgid "Total traffic:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:520
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:538
msgid "Type"
msgstr ""
@ -950,7 +987,7 @@ msgstr ""
msgid "UBOND password"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:795
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:813
msgid "UMTS/GPRS"
msgstr ""
@ -967,7 +1004,7 @@ msgstr ""
msgid "Update server"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:916
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:934
msgid "Upload speed (Kb/s)"
msgstr ""
@ -976,8 +1013,8 @@ msgstr ""
msgid "Uptime:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:905
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:921
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:923
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:939
msgid "Used by Glorytun UDP and SQM/QoS if enabled. 0 to use default value."
msgstr ""
@ -997,8 +1034,8 @@ msgstr ""
msgid "V2Ray user id"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:604
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:605
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:622
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:623
msgid "VLAN"
msgstr ""
@ -1022,9 +1059,9 @@ msgstr ""
msgid "Version"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:568
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:573
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:750
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:580
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:585
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:767
msgid "Wan IP and gateway are identical"
msgstr ""
@ -1034,7 +1071,7 @@ msgid ""
"used to go outside."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:258
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:268
msgid "When proxy shadowsocks is used, use it for UDP if VPN down"
msgstr ""
@ -1042,20 +1079,24 @@ msgstr ""
msgid "Wizard"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:393
msgid "World"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:80
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:85
msgid "You"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:885
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:903
msgid "You can enable MPTCP over VPN if your provider filter Multipath TCP."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:420
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:438
msgid "You can use DHCP if you have multiple real ethernet ports."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:570
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:588
msgid ""
"You can use DHCP if you have multiple real ethernet ports. Select other if "
"you want to use another protocol available in Network Interfaces page."
@ -1065,7 +1106,7 @@ msgstr ""
msgid "You can use a public IPv6 prefix only if you set only one server."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:491
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:509
msgid "You must disable DHCP on your modems and set IP in different networks."
msgstr ""
@ -1073,7 +1114,7 @@ msgstr ""
msgid "You should disable IPv6 here if server doesn't provide IPv6."
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:895
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:913
msgid "You should disable SQM for LTE or any interfaces with variable speed."
msgstr ""
@ -1089,7 +1130,7 @@ msgstr ""
msgid "address:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:797
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:815
msgid "auto"
msgstr ""
@ -1097,35 +1138,35 @@ msgstr ""
msgid "empty key"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:497
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:500
msgid "interface:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:481
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:712
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:484
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:729
msgid "ip address:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:485
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:488
msgid "ipv6 address:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:509
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:724
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:512
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:741
msgid "latency:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:513
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:728
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:516
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:745
msgid "mtu:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:619
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:781
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:636
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:798
msgid "multipath:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:517
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:520
msgid "operator:"
msgstr ""
@ -1133,7 +1174,7 @@ msgstr ""
msgid "other"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:521
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:524
msgid "phone number:"
msgstr ""
@ -1141,26 +1182,26 @@ msgstr ""
msgid "range:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:525
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:528
msgid "state:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:622
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:784
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:639
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:801
msgid "traffic control:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:489
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:716
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:492
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:733
msgid "wan address:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:493
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:496
msgid "wan ipv6 address:"
msgstr ""
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:501
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:505
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:720
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:504
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:508
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:737
msgid "whois:"
msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2021-03-12 22:45+0000\n"
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: antrouter <xinyangla@188.com>\n"
"Language-Team: Chinese (Simplified) <http://weblate.openmptcprouter.com/"
"projects/omr/luciapplicationsopenmptcprouter/zh_Hans/>\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.0.4\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:286
msgid "A Dead Simple VPN is a TCP VPN that can replace Glorytun TCP"
@ -31,11 +31,11 @@ msgstr "如果设置了WAN IPv6则可以为设置第二台服务器的IP双IP
msgid "API username to retrieve personnalized settings from the server."
msgstr "API用户名从聚合服务器检索个性化设置."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:776
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:794
msgid "APN"
msgstr "APN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:695
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:713
msgid "Accept IPv6 RA"
msgstr "接受IPv6 RA"
@ -43,7 +43,7 @@ msgstr "接受IPv6 RA"
msgid "Add a new server"
msgstr "添加一个新聚合服务器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:956
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:974
msgid "Add an interface"
msgstr "添加网卡"
@ -52,7 +52,7 @@ msgstr "添加网卡"
msgid "Advanced Settings"
msgstr "高级设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:152
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:150
msgid "Advanced settings"
msgstr "高级设置"
@ -72,12 +72,12 @@ msgid ""
"processor."
msgstr "处理器中集成了高级加密标准AES指令集."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:802
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:820
msgid "Authentication Type"
msgstr "认证类型"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:840
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:856
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:858
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:874
msgid "Backup"
msgstr "备份"
@ -86,7 +86,7 @@ msgstr "备份"
msgid "Backup on server"
msgstr "备份到服务器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:310
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:320
msgid "Balancing"
msgstr "均衡"
@ -98,11 +98,11 @@ msgstr "测试版"
msgid "Big time difference between the server and the router"
msgstr "服务器和路由器之间的时间差距很大"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:525
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:543
msgid "Bridge"
msgstr "桥接"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:602
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:614
msgid "Bridge can't have multipath enabled"
msgstr "网桥无法启用多路径聚合"
@ -115,7 +115,7 @@ msgid ""
"By default proxy is used for any traffic that is TCP (and UDP for V2Ray)."
msgstr "默认情况下代理用于任何TCP对于V2Ray是UDP流量。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:807
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:825
msgid "CHAP"
msgstr "CHAP"
@ -139,32 +139,40 @@ msgstr "无法通过聚合服务器ShadowSocks获取公网IP地址"
msgid "Can\\'t ping server"
msgstr "无法ping聚合服务器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:529
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:394
msgid "China"
msgstr "中国专属"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:547
msgid ""
"Choose MacVLAN if you want to create a virtual interface based on a physical "
"interface."
msgstr "如果要基于物理接口创建虚拟接口请选择MacVLAN。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:463
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:549
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:608
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:481
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:567
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:626
msgid "Choose physical interface."
msgstr "选择物理接口。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:150
msgid "Common server settings"
msgstr "通用服务器设置聚合"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:135
msgid "Core temp:"
msgstr "核心温度:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:415
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:560
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:389
msgid "Country"
msgstr "国家"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:386
msgid "Country settings"
msgstr "国家设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:433
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:578
msgid "DHCP"
msgstr "DHCP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:561
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:579
msgid "DHCPv6"
msgstr "DHCPV6"
@ -172,7 +180,7 @@ msgstr "DHCPV6"
msgid "DNS issue: can\\'t resolve hostname"
msgstr "DNS问题无法解析主机名"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:294
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304
msgid "Debug"
msgstr "调试模式"
@ -185,16 +193,20 @@ msgid "Default VPN"
msgstr "默认VPN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:66
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:504
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:522
msgid "Delete"
msgstr "删除"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:702
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:729
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:750
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:720
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:747
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:768
msgid "Device"
msgstr "设备"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:253
msgid "Disable HTTP test on Server API in status page"
msgstr "在状态页面中禁用服务器API上的HTTP测试"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:203
msgid "Disable TCP Fast Open"
msgstr "禁用TCP Fast Open"
@ -203,11 +215,11 @@ msgstr "禁用TCP Fast Open"
msgid "Disable TCP Fast Open on Linux and Shadowsocks configuration"
msgstr "在Linux和Shadowsocks配置上禁用TCP快速打开"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:264
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:274
msgid "Disable default gateway"
msgstr "关闭默认网关"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:269
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279
msgid "Disable default gateway, no internet if VPS are down"
msgstr "禁用默认网关,如果VPS关闭,则没办法链接互联网"
@ -220,14 +232,14 @@ msgid "Disable gateway ping"
msgstr "禁用网关ping"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:243
msgid "Disable gateway ping status check"
msgstr "禁用网关ping状态检查"
msgid "Disable gateway ping check in status page"
msgstr "禁用状态页面网关ping检查"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:248
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:258
msgid "Disable interfaces auto rename"
msgstr "禁用接口自动重命名"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:299
msgid "Disable multipath test using tracebox"
msgstr "禁止使用tracebox多路径测试"
@ -236,7 +248,7 @@ msgid ""
"Disable ports redirection defined in firewall from server to this router"
msgstr "禁用防火墙中定义的从服务器到此路由器的端口重定向"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:253
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:263
msgid "Disable renaming interfaces"
msgstr "禁用网卡重命名"
@ -244,29 +256,33 @@ msgstr "禁用网卡重命名"
msgid "Disable server"
msgstr "关闭禁用聚合服务器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:274
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:248
msgid "Disable server http test"
msgstr "禁用服务器http 测试"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:284
msgid "Disable server ping"
msgstr "禁用服务器ping"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289
msgid "Disable server ping status check"
msgstr "禁用服务器ping状态检查"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:284
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:294
msgid "Disable tracebox test"
msgstr "禁用蚂蚁聚合检测"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:178
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:838
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:854
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:856
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:872
msgid "Disabled"
msgstr "关闭"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:900
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:918
msgid "Download speed (Kb/s)"
msgstr "下载速度 (Kb/s)"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:308
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:318
msgid "Dynamic change"
msgstr "动态变化"
@ -275,7 +291,7 @@ msgstr "动态变化"
msgid "Enable IPv6"
msgstr "开启 IPv6"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:890
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:908
msgid "Enable SQM"
msgstr "开启 SQM"
@ -287,13 +303,13 @@ msgstr "启用ShadowSocks混淆"
msgid "Enable TCP Low Latency"
msgstr "启用TCP低延迟"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:299
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:309
msgid "Enable debug logs"
msgstr "启用调试日志"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:179
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:837
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:853
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:855
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:871
msgid "Enabled"
msgstr "开启"
@ -309,6 +325,10 @@ msgstr "加密方法用于ShadowsocksV2RayGlorytun和OpenVPN。"
msgid "Filesystem is readonly"
msgstr "文件系统处于只读状态/重新刷机吧"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:398
msgid "For China, set an accessible DNS and disable DNSSEC."
msgstr "对于中国设置专属的DNS并禁用DNSSEC."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:167
msgid "Force retrieve all keys from server."
msgstr "强制从服务器检索并应用所有密钥。"
@ -317,16 +337,16 @@ msgstr "强制从服务器检索并应用所有密钥。"
msgid "Force retrieve settings"
msgstr "强制检索设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:796
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:814
msgid "GPRS only"
msgstr "仅GPRS"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:554
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:739
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:557
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:756
msgid "Gateway DOWN"
msgstr "网关不通"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:557
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:560
msgid "Gateway IPv6 DOWN"
msgstr "IPV6网关不通"
@ -375,17 +395,17 @@ msgstr "IPv4 TCP SYN重试1"
msgid "IPv4 TCP SYN retries2"
msgstr "IPv4 TCP SYN重试2"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:471
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:614
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:489
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:632
msgid "IPv4 address"
msgstr "IPv4地址"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:630
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:648
msgid "IPv4 gateway"
msgstr "IPv4网关"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:477
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:624
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:495
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:642
msgid "IPv4 netmask"
msgstr "IPv4网络掩码"
@ -393,18 +413,18 @@ msgstr "IPv4网络掩码"
msgid "IPv6 Prefix"
msgstr "IPv6前缀"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:644
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:671
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:662
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:689
msgid "IPv6 address"
msgstr "IPv6地址"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:658
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:681
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:699
msgid "IPv6 gateway"
msgstr "IPv6网关"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:612
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:779
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:624
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:796
msgid "IPv6 route received"
msgstr "经过的IPv6路由"
@ -420,7 +440,7 @@ msgstr "IPv6隧道DOWN"
msgid "IPv6:"
msgstr "IPv6 :"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:490
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:508
msgid "Interfaces settings"
msgstr "接口设置"
@ -439,21 +459,21 @@ msgid ""
"settings from OpenMPTCProuter."
msgstr "用于服务器配置密钥以及设置的密钥."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:388
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:406
msgid "LAN interfaces settings"
msgstr "局域网接口设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:794
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:812
msgid "LTE"
msgstr "4G LTE制式"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:399
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:510
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:417
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:528
msgid "Label"
msgstr "标签"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:405
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:515
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:423
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:533
msgid "Label for the interface"
msgstr "接口标签"
@ -489,7 +509,7 @@ msgid "MPTCP may not be enabled on the server"
msgstr "服务器上可能未启用MPTCP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:372
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:880
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:898
msgid "MPTCP over VPN"
msgstr "通过MPTCP的VPN"
@ -503,36 +523,36 @@ msgid ""
"connection."
msgstr "仅当在链路上阻止多路径TCP时才应该使用基于VPN的MPTCP。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:524
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:542
msgid "MacVLAN"
msgstr "Macvlan"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:839
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:855
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:857
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:873
msgid "Master"
msgstr "主"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:314
msgid "Master interface selection"
msgstr "主网卡选择"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:326
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:336
msgid "Maximum scaling CPU frequency"
msgstr "最大扩展CPU频率"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:320
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:330
msgid "Minimum scaling CPU frequency"
msgstr "最小扩展CPU频率"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:791
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:809
msgid "Modem default"
msgstr "调制解调器默认"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:825
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:843
msgid "Modem init timeout"
msgstr "调制解调器初始化超时"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:562
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:580
msgid "ModemManager"
msgstr "调制解调器管理器"
@ -540,47 +560,51 @@ msgstr "调制解调器管理器"
msgid "More than one default VPN is enabled"
msgstr "启用了多个默认VPN"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:834
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:850
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:852
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:868
msgid "Multipath TCP"
msgstr "多路径TCP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:585
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:591
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:762
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:768
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:597
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:603
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:779
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:785
msgid "Multipath current state is"
msgstr "多路径当前状态为"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:580
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:757
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:592
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:774
msgid "Multipath master already defined"
msgstr "已定义多路径主机"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:560
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:742
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:563
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:759
msgid "Multipath seems to be blocked on the connection"
msgstr "多路径似乎在连接上被阻止"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:563
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:581
msgid "NCM"
msgstr "NCM"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:805
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:823
msgid "NONE"
msgstr "无"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:607
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:619
msgid "Network interface MAC address duplicated"
msgstr "网络接口MAC地址重复"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:597
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:774
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:609
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:791
msgid "Network interface duplicated"
msgstr "网络接口重复"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:874
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:876
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:575
msgid "Network interface not in WAN firewall zone"
msgstr "网络接口不在WAN防火墙区域中"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:891
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:893
msgid "Network overview"
msgstr "网络概览"
@ -588,8 +612,8 @@ msgstr "网络概览"
msgid "Networks settings"
msgstr "网络设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:547
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:732
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:550
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:749
msgid "No IP defined"
msgstr "没有定义IP"
@ -597,8 +621,12 @@ msgstr "没有定义IP"
msgid "No IPv6 access"
msgstr "没有IPv6地址"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:564
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:746
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:571
msgid "No Server http response after 1 second"
msgstr "1秒后无服务器HTTP响应"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:567
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:763
msgid "No Server ping response after 1 second"
msgstr "1秒后无服务器ping响应"
@ -606,7 +634,7 @@ msgstr "1秒后无服务器ping响应"
msgid "No WAN IP address detected in less than 1 second"
msgstr "不到1秒内未检测到WAN IP地址"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:631
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:648
msgid "No WAN with multipath enabled:"
msgstr "没有启用多路径的WAN:"
@ -614,16 +642,16 @@ msgstr "没有启用多路径的WAN:"
msgid "No available backup on server."
msgstr "服务器上没有可用的备份."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:309
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:319
msgid "No change"
msgstr "没有改变"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:794
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:811
msgid "No data"
msgstr "没有数据"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:551
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:736
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:554
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:753
msgid "No gateway defined"
msgstr "未定义网关"
@ -641,10 +669,11 @@ msgid "No server defined"
msgstr "未定义聚合服务器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:244
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:392
msgid "None"
msgstr "没有"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:523
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:541
msgid "Normal"
msgstr "正常"
@ -666,7 +695,7 @@ msgstr "混淆类型"
msgid "Obfuscating will be enabled on both side"
msgstr "双方都将启用混淆"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:307
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:317
msgid "On wizard change"
msgstr "通过向导更改"
@ -674,7 +703,7 @@ msgstr "通过向导更改"
msgid "Only ShadowSocks is supported with server multiple IPs for now."
msgstr "目前服务器如果有多个公网IP仅支持ShadowSocks."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:844
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:862
msgid ""
"Only one interface must be set as \"Master\", this should be the most stable "
"interface."
@ -696,8 +725,8 @@ msgstr "OpenVPN不能用于多VPS配置."
msgid "Optimize for latency instead of bandwidth"
msgstr "优化延迟而不是带宽"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:416
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:566
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:434
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:584
msgid "Other"
msgstr "其他"
@ -705,41 +734,41 @@ msgstr "其他"
msgid "Other settings"
msgstr "聚合其他设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:806
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:824
msgid "PAP"
msgstr "PAP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:808
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:826
msgid "PAP/CHAP"
msgstr "PAP/CHAP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:819
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:837
msgid "PAP/CHAP password"
msgstr "PAP/CHAP 密码"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:813
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:831
msgid "PAP/CHAP username"
msgstr "PAP/CHAP 账号"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:782
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:800
msgid "PIN code"
msgstr "PIN码"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:564
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:582
msgid "PPPoE"
msgstr "PPPoE拨号"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:534
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:575
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:446
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:552
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:593
msgid "Physical interface"
msgstr "物理接口"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:792
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:810
msgid "Prefer LTE"
msgstr "首选4G LTE制式"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:793
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:811
msgid "Prefer UMTS"
msgstr "首选3G UMTS"
@ -747,8 +776,8 @@ msgstr "首选3G UMTS"
msgid "Primary server IP"
msgstr "主服务器IP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:410
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:555
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:573
msgid "Protocol"
msgstr "协议"
@ -764,7 +793,7 @@ msgstr "代理设置"
msgid "Proxy traffic:"
msgstr "代理流量:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:565
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:583
msgid "QMI"
msgstr "QMI"
@ -772,7 +801,7 @@ msgstr "QMI"
msgid "Redirects all ports from server to this router"
msgstr "将所有端口从服务器重定向到此路由器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:966
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:984
msgid "Reset"
msgstr "复位"
@ -784,8 +813,8 @@ msgstr "恢复备份"
msgid "Retrieve settings from server"
msgstr "从服务器检索设置"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:352
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:965
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:362
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:983
msgid "Save & Apply"
msgstr "保存并且应用设置"
@ -797,7 +826,7 @@ msgstr "将vnstats统计信息保存在磁盘上"
msgid "Save vnstats stats"
msgstr "保存vnstats统计信息"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:332
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:342
msgid "Scaling governor"
msgstr "超频"
@ -805,7 +834,7 @@ msgstr "超频"
msgid "Secondary server IP"
msgstr "辅助服务器IP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:959
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:977
msgid "Select the device you want to base the interface on."
msgstr "选择要作为基础的接口."
@ -839,7 +868,7 @@ msgstr "聚合服务器设定"
msgid "Server username"
msgstr "服务器用户名"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:788
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:806
msgid "Service Type"
msgstr "服务类型"
@ -847,15 +876,19 @@ msgstr "服务类型"
msgid "Set VPN to use for MPTCP over VPN."
msgstr "设置VPN以用于通过VPN的MPTCP。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:619
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:649
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:637
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:667
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:694
msgid "Set an IP in the same network as the modem"
msgstr "在与调制解调器相同的网络中设置IP"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:635
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:663
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:686
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:387
msgid "Set configuration for countries with some specificities."
msgstr "设置具有某些特殊性的国家/地区的配置。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:653
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:681
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:704
msgid "Set here IP of the modem"
msgstr "在此处设置调制解调器的IP"
@ -879,12 +912,12 @@ msgstr ""
"启用ShadowSocks时为所有流量设置默认的VPN用于UDP和ICMP如果禁用"
"ShadowSocks."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:910
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:928
msgid ""
"Set value between 80-95% of max download speed link. 0 to disable SQM/QoS."
msgstr "设置最大下载速度链接的80-95之间的值。 0禁用SQM / QoS."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:926
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:944
msgid ""
"Set value between 80-95% of max upload speed link. 0 to disable SQM/QoS."
msgstr "设置为最大上传速度链接的80-95之间的值。 0禁用SQM / QoS."
@ -906,12 +939,16 @@ msgstr "ShadowSocks用于TCP."
msgid "ShadowSocks key"
msgstr "ShadowSocks密钥"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:152
msgid "Show advanced settings"
msgstr "显示高级设置"
#: luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua:23
msgid "Show all settings"
msgstr "显示所有设定"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:414
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:559
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:432
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:577
msgid "Static address"
msgstr "静态地址"
@ -919,7 +956,7 @@ msgstr "静态地址"
msgid "Status"
msgstr "状态"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:317
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:327
msgid "Systems settings"
msgstr "系统设定"
@ -957,7 +994,7 @@ msgstr "当未确认RTO重传时此值会影响有效TCP连接的超时。"
msgid "Total traffic:"
msgstr "总流量:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:520
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:538
msgid "Type"
msgstr "类型"
@ -970,7 +1007,7 @@ msgstr "UBOND可以用具有相同延迟的连接替换Glorytun"
msgid "UBOND password"
msgstr "UBOND密码"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:795
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:813
msgid "UMTS/GPRS"
msgstr "UMTS/GPRS"
@ -987,7 +1024,7 @@ msgstr "远程将服务器更新到最新版本并重置它们。"
msgid "Update server"
msgstr "更新服务器"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:916
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:934
msgid "Upload speed (Kb/s)"
msgstr "上传速度 (Kb/s)"
@ -996,8 +1033,8 @@ msgstr "上传速度 (Kb/s)"
msgid "Uptime:"
msgstr "运行时间:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:905
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:921
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:923
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:939
msgid "Used by Glorytun UDP and SQM/QoS if enabled. 0 to use default value."
msgstr "如果启用则由Glorytun UDP和使用SQM / QoS, 默认值0."
@ -1017,8 +1054,8 @@ msgstr "V2Ray账号"
msgid "V2Ray user id"
msgstr "V2Ray账号ID"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:604
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:605
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:622
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:623
msgid "VLAN"
msgstr "VLAN"
@ -1042,9 +1079,9 @@ msgstr "VPN隧道关闭"
msgid "Version"
msgstr "版本"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:568
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:573
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:750
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:580
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:585
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:767
msgid "Wan IP and gateway are identical"
msgstr "WAN IP和网关相同"
@ -1054,7 +1091,7 @@ msgid ""
"used to go outside."
msgstr "启用后将在外部站点上进行检查以获取每个WAN IP和用于外出的IP."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:258
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:268
msgid "When proxy shadowsocks is used, use it for UDP if VPN down"
msgstr "当使用代理shadowsocks时如果VPN关闭将其用于UDP"
@ -1062,20 +1099,24 @@ msgstr "当使用代理shadowsocks时如果VPN关闭将其用于UDP"
msgid "Wizard"
msgstr "蚂蚁聚合向导"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:393
msgid "World"
msgstr "世界"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:80
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:85
msgid "You"
msgstr "你"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:885
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:903
msgid "You can enable MPTCP over VPN if your provider filter Multipath TCP."
msgstr "如果提供商过滤多路径TCP则可以启用VPN上的MPTCP."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:420
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:438
msgid "You can use DHCP if you have multiple real ethernet ports."
msgstr "如果您有多个真实的以太网端口则可以使用DHCP。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:570
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:588
msgid ""
"You can use DHCP if you have multiple real ethernet ports. Select other if "
"you want to use another protocol available in Network Interfaces page."
@ -1087,7 +1128,7 @@ msgstr ""
msgid "You can use a public IPv6 prefix only if you set only one server."
msgstr "仅当您仅设置一台服务器时才能使用公共IPv6前缀。"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:491
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:509
msgid "You must disable DHCP on your modems and set IP in different networks."
msgstr "您必须在调制解调器上禁用DHCP并在其他网络中设置IP."
@ -1095,7 +1136,7 @@ msgstr "您必须在调制解调器上禁用DHCP并在其他网络中设置IP."
msgid "You should disable IPv6 here if server doesn't provide IPv6."
msgstr "如果服务器不提供IPv6则应在此处禁用IPv6."
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:895
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:913
msgid "You should disable SQM for LTE or any interfaces with variable speed."
msgstr "您应该为LTE或任何网速不稳的接口禁用SQM."
@ -1111,7 +1152,7 @@ msgstr "您访问的IP来源未通过此路由器"
msgid "address:"
msgstr "地址:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:797
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:815
msgid "auto"
msgstr "自动"
@ -1119,35 +1160,35 @@ msgstr "自动"
msgid "empty key"
msgstr "空键"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:497
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:500
msgid "interface:"
msgstr "接口:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:481
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:712
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:484
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:729
msgid "ip address:"
msgstr "IP地址:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:485
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:488
msgid "ipv6 address:"
msgstr "IPV6地址:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:509
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:724
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:512
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:741
msgid "latency:"
msgstr "时延:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:513
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:728
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:516
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:745
msgid "mtu:"
msgstr "mtu :"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:619
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:781
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:636
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:798
msgid "multipath:"
msgstr "多路聚合:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:517
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:520
msgid "operator:"
msgstr "运营商:"
@ -1155,7 +1196,7 @@ msgstr "运营商:"
msgid "other"
msgstr "其他"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:521
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:524
msgid "phone number:"
msgstr "电话号码:"
@ -1163,30 +1204,33 @@ msgstr "电话号码:"
msgid "range:"
msgstr "漫游:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:525
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:528
msgid "state:"
msgstr "状态:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:622
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:784
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:639
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:801
msgid "traffic control:"
msgstr "流量控制:"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:489
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:716
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:492
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:733
msgid "wan address:"
msgstr "互联网地址 :"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:493
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:496
msgid "wan ipv6 address:"
msgstr "IPV6互联网地址 :"
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:501
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:505
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:720
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:504
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:508
#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:737
msgid "whois:"
msgstr "whois查询 :"
#~ msgid "Common server settings"
#~ msgstr "通用服务器设置聚合"
#~ msgid "Update VPS"
#~ msgstr "更新VPS"

View file

@ -9,7 +9,7 @@ uci show | \
-e "/publicip=/s/......$/xxxxxx'/" \
-e "/\.host=/s/......$/xxxxxx'/" \
-e "/\.ip=/s/......$/xxxxxx'/" \
-e "/\.ipv6=/s/......$/xxxxxx'/" \
-e "/\.ipv6='2/s/=....../='xxxxxx/" \
-e "/user_id=/s/......$/xxxxxx'/" \
-e "/openvpn\.omr\.remote=/s/......$/xxxxxx'/" \
-e "/shadowsocks-libev\.sss.*\.server=/s/......$/xxxxxx'/" \
@ -21,4 +21,5 @@ uci show | \
-e "/vpn\.key=/s/......$/xxxxxx'/" \
-e "/vps\.key=/s/......$/xxxxxx'/" \
-e "/wgkey=/s/......$/xxxxxx'/" \
-e "/ula_prefix=2/s/=.........../='xxxxxxxxxxx/" \
-e "/token=/s/............$/xxxxxx'/"

View file

@ -1390,7 +1390,7 @@ function interfaces_status()
end
local zonewan = "NO"
if ut.trim(sys.exec("uci -q get firewall.zone_wan.network | grep '" .. interface .. "'")) ~= "" then
if ut.trim(sys.exec("uci -q get firewall.zone_wan.network | grep '" .. interface .. "'")) ~= "" or interface:match("^wg.*") or interface:match("^ovpn.*") then
zonewan = "OK"
end

View file

@ -0,0 +1,99 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationspacket-capture/fr/>\n"
"Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:177
msgid "Capture packets with tcpdump."
msgstr "Capturez des paquets avec tcpdump."
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:247
msgid "Close"
msgstr "Fermer"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:201
msgid "Convert host addresses to names."
msgstr "Convertissez les adresses d'hôte en noms."
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:277
msgid "Download"
msgstr "Téléchargement"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:275
msgid "Download capture file"
msgstr "Télécharger le fichier de capture"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:193
msgid "Duration"
msgstr "Durée"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:193
msgid "Duration of packet capturing in seconds."
msgstr "Durée de la capture des paquets en secondes."
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:189
msgid "Filter"
msgstr "Filtre"
#: luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json:3
msgid "Grant access to tcpdump ubus object"
msgstr "Accorder l'accès à l'objet ubus tcpdump"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:181
msgid "Interface"
msgstr "Interface"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:197
msgid "Number of packets to be captured."
msgstr "Nombre de paquets à capturer."
#: luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json:3
msgid "Packet Capture"
msgstr "Capture de paquets"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:177
msgid "Packet Capture - Tcpdump"
msgstr "Capture de paquets - Tcpdump"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:197
msgid "Packets"
msgstr "Paquets"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:203
msgid "Print the link-level header on each dump line."
msgstr "Imprimez l'en-tête du lien sur chaque ligne de capture."
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:201
msgid "Resolve domains"
msgstr "Résoudre les domaines"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:205
msgid "Save capture to pcap file."
msgstr "Enregistrez la capture dans le fichier pcap."
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:205
msgid "Save to file"
msgstr "Enregistrer dans un fichier"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:207
msgid "Start tcpdump"
msgstr "Démarrez tcpdump"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:263
msgid "Stop tcpdump"
msgstr "Arrêter tcpdump"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:189
msgid "Tcpdump filter like protocol, port etc."
msgstr "Filtre pour tcpdump comme le protocole, le port, etc."
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:203
msgid "Verbose output"
msgstr "Sortie verbeuse"

View file

@ -0,0 +1,90 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:177
msgid "Capture packets with tcpdump."
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:247
msgid "Close"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:201
msgid "Convert host addresses to names."
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:277
msgid "Download"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:275
msgid "Download capture file"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:193
msgid "Duration"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:193
msgid "Duration of packet capturing in seconds."
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:189
msgid "Filter"
msgstr ""
#: luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json:3
msgid "Grant access to tcpdump ubus object"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:181
msgid "Interface"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:197
msgid "Number of packets to be captured."
msgstr ""
#: luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json:3
msgid "Packet Capture"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:177
msgid "Packet Capture - Tcpdump"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:197
msgid "Packets"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:203
msgid "Print the link-level header on each dump line."
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:201
msgid "Resolve domains"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:205
msgid "Save capture to pcap file."
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:205
msgid "Save to file"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:207
msgid "Start tcpdump"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:263
msgid "Stop tcpdump"
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:189
msgid "Tcpdump filter like protocol, port etc."
msgstr ""
#: luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js:203
msgid "Verbose output"
msgstr ""

View file

@ -0,0 +1,184 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationssnmpd/fr/>\n"
"Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:82
msgid "Access"
msgstr "Accès"
#: luci-app-snmpd/luasrc/view/snmpd.htm:81
#: luci-app-snmpd/luasrc/view/snmpd.htm:122
msgid "Add"
msgstr "Ajouter"
#: luci-app-snmpd/luasrc/view/snmpd.htm:66
#: luci-app-snmpd/luasrc/view/snmpd.htm:116
msgid "All"
msgstr "Tout"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:139
msgid "Arguments"
msgstr "Arguments"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:42
msgid "Community"
msgstr "Communauté"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:23
msgid "Contact"
msgstr "Contact"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:97
msgid "Context"
msgstr "Contexte"
#: luci-app-snmpd/luasrc/view/snmpd.htm:54
msgid "Domain, IP or network"
msgstr "Domaine, IP ou réseau"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:9
#: luci-app-snmpd/luasrc/view/snmpd.htm:24
msgid "Enabled"
msgstr "Activé"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:132
msgid "Exec"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:6
#: luci-app-snmpd/luasrc/view/snmpd.htm:21
#: luci-app-snmpd/luasrc/view/snmpd.htm:48
msgid "General"
msgstr ""
#: luci-app-snmpd/root/usr/share/rpcd/acl.d/luci-app-snmpd.json:3
msgid "Grant UCI access for luci-app-snmpd"
msgstr "Accorder l'accès UCI pour luci-app-snmpd"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:63
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:72
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:86
msgid "Group"
msgstr "Groupe"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:63
msgid "Groups help define access methods"
msgstr "Les groupes aident à définir les méthodes d'accès"
#: luci-app-snmpd/luasrc/view/snmpd.htm:64
#: luci-app-snmpd/luasrc/view/snmpd.htm:114
msgid "Interface"
msgstr "Interface"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:101
msgid "Level"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:22
msgid "Location"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:24
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:137
msgid "Name"
msgstr "Nom"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:12
msgid "Networks"
msgstr "Réseaux"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:116
msgid "Notify"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:136
msgid "ObjectID"
msgstr ""
#: luci-app-snmpd/luasrc/view/snmpd.htm:55
#: luci-app-snmpd/luasrc/view/snmpd.htm:90
msgid "Output interface"
msgstr "Interface de sortie"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:138
msgid "Program"
msgstr ""
#: luci-app-snmpd/luasrc/view/snmpd.htm:85
#: luci-app-snmpd/luasrc/view/snmpd.htm:89
msgid "Protocols"
msgstr "Protocoles"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:106
msgid "Read"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:34
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:69
msgid "Read-only"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:35
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:70
msgid "Read-write"
msgstr ""
#: luci-app-snmpd/luasrc/controller/snmpd.lua:6
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:4
#: luci-app-snmpd/luasrc/view/snmpd.htm:19
#: luci-app-snmpd/root/usr/share/luci/menu.d/luci-app-snmpd.json:3
msgid "SNMPd"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:4
msgid "SNMPd settings interface (Beta)"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:32
msgid "Server"
msgstr "Serveur"
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:37
msgid "Source"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:19
msgid "System"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:111
msgid "Write"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:92
msgid "any"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:104
msgid "auth"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:29
msgid "com2sec security"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:103
msgid "noauth"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:67
msgid "secname"
msgstr ""
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:76
#: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:90
msgid "version"
msgstr ""

View file

@ -0,0 +1,97 @@
msgid ""
msgstr ""
"PO-Revision-Date: 2021-03-31 15:07+0000\n"
"Last-Translator: Weblate Admin <contact@openmptcprouter.com>\n"
"Language-Team: French <http://weblate.openmptcprouter.com/projects/omr/"
"luciapplicationssysupgrade/fr/>\n"
"Language: fr\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.5.2\n"
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:90
msgid "Check \"Keep settings\" to retain the current configuration."
msgstr ""
"Cochez \"Conserver les paramètres\" pour conserver la configuration actuelle."
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:344
msgid "Downloading firmware to web browser memory"
msgstr "Téléchargement du micrologiciel dans la mémoire du navigateur Web"
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:78
msgid "Easily search and install new releases and package upgrades."
msgstr ""
"Recherchez et installez facilement les nouvelles versions et les mises à "
"niveau des paquets."
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:99
msgid "Edit installed packages"
msgstr "Modifier les packages installés"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:269
msgid "Flashing firmware. Don't unpower device"
msgstr "Mise à jour du micrologiciel. Ne débranchez pas l'appareil"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:192
msgid "Installed version:"
msgstr "Version installée :"
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:92
msgid "Keep settings:"
msgstr "Conserver les paramètres :"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:215
msgid "No upgrades available"
msgstr "Pas de mise à jour disponible"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:285
msgid "Rebooting device - please wait!"
msgstr "Redémarrage de l'appareil - veuillez patienter !"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:209
msgid "Request firmware"
msgstr "Demander le micrologiciel"
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:110
msgid "Search for upgrades"
msgstr "Rechercher des mises à jour"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:165
msgid "Searching for upgrades"
msgstr "Recherche des mises à jour"
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:103
msgid "Server:"
msgstr "Serveur :"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:289
msgid "Success! Please reload web interface"
msgstr "Succès ! Veuillez recharger l'interface Web"
#: luci-app-sysupgrade/luasrc/view/sysupgrade.htm:76
#: luci-app-sysupgrade/root/usr/share/luci/menu.d/luci-app-sysupgrade.json:3
msgid "Sysupgrade"
msgstr "Mise à jour système"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:320
msgid "Upload of firmware failed, please retry by reloading web interface"
msgstr ""
"Le téléchargement du micrologiciel a échoué, veuillez réessayer en "
"rechargeant l'interface Web"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:305
msgid "Uploading firmware to device"
msgstr "Téléchargement du micrologiciel sur l'appareil"
#: luci-app-sysupgrade/root/www/luci-static/resources/sysupgrade.js:299
msgid ""
"Web interface could not reconnect to your device. Please reload web "
"interface or check device manually"
msgstr ""
"L'interface Web n'a pas pu se reconnecter à votre appareil. Recharger "
"l'interface"
#: luci-app-sysupgrade/root/usr/share/rpcd/acl.d/sysupgrade.json:3
msgid "sysupgrade via rpcd and luci"
msgstr "Mise à jour système via rpcd et luci"

View file

@ -803,7 +803,7 @@ header p {
header .fill {
background-color: #000;
background-repeat: repeat-x;
background-image: linear-gradient(to bottom, #3f78b7, #3f78b7);
background-image: linear-gradient(to bottom, #6089d4, #6089d4);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
padding: 0 5px;
}
@ -868,7 +868,7 @@ header div > ul .menu-dropdown,
.nav .menu-dropdown,
header div > ul .dropdown-menu,
.nav .dropdown-menu {
background-color: #3f78b7;
background-color: #6089d4;
}
header div > ul .menu-dropdown a.menu,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

@ -8,7 +8,7 @@
<% local ver = require "luci.version" %>
<footer>
<a href="https://55860.com">Powered by openmptcprouter路由器特别定制优化版 官方支持群140215026 <%= ver.distversion %></a>
<a href="https://55860.com">Powered by openmptcprouter business <%= ver.distversion %></a>
<ul class="breadcrumb pull-right" id="modemenu" style="display:none"></ul>
</footer>
</div>

View file

@ -47,7 +47,7 @@
<header>
<div class="fill">
<div class="container">
<a class="brand" href="#" alt="openmptcprouter路由器特别定制优化版"><img src="<%=resource%>/openmptcprouter/images/omr-logo.png" height="50" width="300" alt="openmptcprouter路由器特别定制优化版" /></a>
<a class="brand" href="#" alt="openmptcprouter business"><img src="<%=resource%>/openmptcprouter/images/omr-logo.png" height="50" width="300" alt="openmptcprouter business" /></a>
<ul class="nav" id="topmenu" style="display:none"></ul>
<div id="indicators" class="pull-right"></div>
</div>
@ -66,7 +66,7 @@
<%- end -%>
<%- if current_omr_version ~= "" and latest_omr_version ~= "" and current_omr_version < latest_omr_version then -%>
<div class="alert-message notice">
<p><%=translatef("You have OMR特别定制优化版 官方支持群140215026 version %s and version %s is now available",current_omr_version,latest_omr_version)%></p>
<p><%=translatef("You have openmptcprouter business version %s and version %s is now available",current_omr_version,latest_omr_version)%></p>
<div class="right"><a class="btn" href="https://www.55860.com/"><%:Download latest version...%></a></div>
</div>
<%- end -%>

View file

@ -876,7 +876,9 @@ if [ "$multipath_config" = "master" ]; then
routesbalancing=""
routesbalancingbackup=""
nbintf=0
nbintfb=0
nbintf6=0
nbintfb6=0
config_load network
config_foreach set_route_balancing interface
config_foreach set_route_balancing6 interface
@ -893,13 +895,13 @@ if [ "$multipath_config" = "master" ]; then
}
}
[ -n "$routesbalancingbackup" ] && {
([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && {
([ "$nbintfb" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && {
_log "Set backup ip route replace default scope global $routesbalancingbackup"
ip route replace default scope global metric 999 $routesbalancingbackup 2>&1 >/dev/null
}
}
[ -n "$routesbalancingbackup6" ] && {
([ "$nbintf6" -gt "1" ] && [ "$(ip -6 r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup6 " ]) || ([ "$nbintf6" = "1" ] && [ "$(ip -6 r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ]) && {
([ "$nbintfb6" -gt "1" ] && [ "$(ip -6 r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup6 " ]) || ([ "$nbintf6" = "1" ] && [ "$(ip -6 r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ]) && {
_log "Set backup ip -6 route replace default scope global $routesbalancingbackup6"
ip -6 route replace default scope global metric 999 $routesbalancingbackup6 2>&1 >/dev/null
}
@ -1342,7 +1344,7 @@ if [ -n "$(logread | tail -n 2 | grep 'Ring expansion failed')" ]; then
echo 1 > /sys/bus/pci/rescan
fi
if [ "$(iptables-save | grep omr-bypass)" = "" ]; then
if [ "$(iptables-save | grep omr-bypass)" = "" ] && [ "$(pgrep omr-bypass)" = "" ]; then
_log "Can't find omr-bypass rules, restart omr-bypass..."
/etc/init.d/omr-bypass
fi

View file

@ -363,7 +363,6 @@ while true; do
if $(exit $statusb); then
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
else
if [ "$OMR_TRACKER_LIST_HOSTS" = "" ]; then
OMR_TRACKER_LIST_HOSTS="$OMR_TRACKER_HOST"
@ -375,25 +374,25 @@ while true; do
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
fi
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
fi
if [ "$server_ping" != false ] && [ "$OMR_TRACKER_STATUS" = "OK" ] && [ "$OMR_TRACKER_TYPE" != "httping" ] && [ "$OMR_TRACKER_SERVER_HTTP_TEST" = "1" ]; then
if [ "$serverip_ping" != false ] && [ "$OMR_TRACKER_STATUS" = "OK" ] && [ "$OMR_TRACKER_TYPE" != "httping" ] && [ "$OMR_TRACKER_SERVER_HTTP_TEST" = "1" ]; then
serverip_ping=false
config_load openmptcprouter
config_foreach _httping_server server $OMR_TRACKER_DEVICE_IP
if [ "$serverip_ping" = false ]; then
OMR_TRACKER_STATUS="ERROR"
OMR_TRACKER_STATUS_MSG="No access to server API"
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
fi
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
fi
[ "$OMR_TRACKER_STATUS" = "OK" ] && break
elif ! $(exit $status); then
OMR_TRACKER_STATUS_MSG="gateway down"
fi
@ -407,7 +406,7 @@ while true; do
sleep "$OMR_TRACKER_INTERVAL_TRIES"
done
fi
if [ -n "$OMR_TRACKER_DEVICE_IP6" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; then
if [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "0" ] && [ -n "$OMR_TRACKER_DEVICE_IP6" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; then
# setup loop variable
tries="$OMR_TRACKER_TRIES"
# loop until tries attempts have been reached
@ -464,7 +463,6 @@ while true; do
if $(exit $statusb); then
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
else
if [ "$OMR_TRACKER_LIST_HOSTS6" = "" ]; then
OMR_TRACKER_LIST_HOSTS6="$OMR_TRACKER_HOST6"
@ -476,25 +474,25 @@ while true; do
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
fi
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
fi
if [ "$server_ping" != false ] && [ "$OMR_TRACKER_STATUS" = "OK" ] && [ "$OMR_TRACKER_TYPE" != "httping" ] && [ "$OMR_TRACKER_SERVER_HTTP_TEST" = "1" ]; then
if [ "$serverip_ping" != false ] && [ "$OMR_TRACKER_STATUS" = "OK" ] && [ "$OMR_TRACKER_TYPE" != "httping" ] && [ "$OMR_TRACKER_SERVER_HTTP_TEST" = "1" ]; then
serverip_ping=false
config_load openmptcprouter
config_foreach _httping_server server $OMR_TRACKER_DEVICE_IP
if [ "$serverip_ping" = false ]; then
OMR_TRACKER_STATUS_MSG="No access to server API"
OMR_TRACKER_STATUS="ERROR"
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
fi
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"
break
fi
[ "$OMR_TRACKER_STATUS" = "OK" ] && break
elif ! $(exit $status); then
OMR_TRACKER_STATUS_MSG="gateway down"
fi
@ -508,12 +506,14 @@ while true; do
sleep "$OMR_TRACKER_INTERVAL_TRIES"
done
fi
if [ -z "$OMR_TRACKER_DEVICE_IP" ] || [ -z "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ -z "$OMR_TRACKER_DEVICE_IP6" ] || [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; then
[ -z "$OMR_TRACKER_STATUS_MSG" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_INTERFACE have ip issues"
if [ -z "$OMR_TRACKER_DEVICE_IP" ] || [ -z "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ -z "$OMR_TRACKER_DEVICE_IP6" ] || [ -z "$OMR_TRACKER_DEVICE_GATEWAY6" ]; then
[ -z "$OMR_TRACKER_STATUS_MSG" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_INTERFACE may have ip issues"
[ -z "$OMR_TRACKER_DEVICE_IP" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG, interface have no IPv4"
[ -z "$OMR_TRACKER_DEVICE_GATEWAY" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG, interface have no IPv4 gateway"
[ -z "$OMR_TRACKER_DEVICE_IP6" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG, interface have no IPv6"
[ -z "$OMR_TRACKER_DEVICE_GATEWAY6" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG, interface have no IPv6 gateway"
if [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "0" ]; then
[ -z "$OMR_TRACKER_DEVICE_IP6" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG, interface have no IPv6"
[ -z "$OMR_TRACKER_DEVICE_GATEWAY6" ] && OMR_TRACKER_STATUS_MSG="$OMR_TRACKER_STATUS_MSG, interface have no IPv6 gateway"
fi
fi
else
OMR_TRACKER_STATUS_MSG="link down"

View file

@ -91,7 +91,7 @@ while true; do
_log "Shadowsocks ${server} is down (can't contact via http ${nocontact})"
uci -q set openmptcprouter.omr.ss_${server}="down"
uci -q commit openmptcprouter.omr
[ "$(uci show openmptcprouter.omr | grep ss | grep up)" = "" ] && /etc/init.d/shadowsocks-libev rules_down 2> /dev/null
[ "$(uci show openmptcprouter.omr | grep ss_ | grep up)" = "" ] && /etc/init.d/shadowsocks-libev rules_down 2> /dev/null
_get_ip
server_ping=false
serverip="$(uci -q get shadowsocks-libev.${server}.server)"

View file

@ -65,6 +65,7 @@ _launch_tracker() {
config_get proto "$1" proto
[ -z "$ifname" ] || [ -z "$multipath" ] || [ "$multipath" = "off" ] && [ "$1" != "glorytun" ] && [ "$1" != "omrvpn" ] && [ "$( uci -q get openmptcprouter.$1.multipathvpn)" != "1" ] && return
[ "$1" = "omrvpn" ] && [ "$(uci -q get openmptcprouter.settings.vpn)" = "none" ] && return
[ "${ifenabled}" = "0" ] && return
[ "${enabled}" = "0" ] && return
[ -z "${hosts}" ] && [ "$type" != "none" ] && return

View file

@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
# Copyright (C) 2018-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,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=openmptcprouter-full
PKG_VERSION:=0.13
PKG_VERSION:=0.14
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
@ -82,7 +82,7 @@ MY_DEPENDS := \
luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||aarch64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \
luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \
hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture kmod-bonding luci-proto-bonding luci-app-sysupgrade \
luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard (TARGET_x86||TARGET_x86_64):r8125
luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard (TARGET_x86||TARGET_x86_64):kmod-r8125
# luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status
# luci-proto-bonding luci-app-statistics luci-proto-gre
# softethervpn5-client softethervpn5-server luci-app-nginx-ha

View file

@ -34,24 +34,27 @@ MY_DEPENDS := \
iptables-mod-ipsec kmod-crypto-authenc kmod-ipsec kmod-ipsec4 kmod-ipsec6 kmod-ipt-ipsec \
wireless-tools \
libiwinfo-lua \
ca-bundle ca-certificates libustream-openssl \
luci-mod-admin-full luci-app-firewall luci-app-glorytun-tcp luci-app-glorytun-udp luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-base \
ca-bundle ca-certificates \
luci-mod-admin-full luci-app-firewall luci-app-glorytun-tcp luci-app-glorytun-udp luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-theme-argon luci-base \
luci-app-omr-tracker luci-app-omr-dscp \
luci-app-sqm sqm-scripts-extra \
luci-app-vnstat2 omr-quota luci-app-omr-quota \
luci-app-mptcp luci-app-openmptcprouter luci-app-omr-bypass luci-app-mail luci-app-upnp \
luci-app-opkg \
luci-app-wol luci-app-opkg \
luci-app-uhttpd \
luci-mod-rpc rpcd-mod-rpcsys rpcd-mod-file rpcd-mod-iwinfo \
luci-app-openvpn \
macvlan \
shadowsocks-libev-ss-server shadowsocks-libev-ss-tunnel \
omr-6in4 ip6tables-mod-nat luci-proto-ipv6 6to4 6in4 6rd ip6tables \
speedtestc \
iftop \
htop \
nano \
tcpdump \
ethtool \
iputils-ping \
tracebox \
!TARGET_mvebu:luci-proto-3g \
!TARGET_mvebu:comgt-ncm !TARGET_mvebu:luci-proto-ncm \
!TARGET_mvebu:luci-proto-modemmanager \
@ -63,24 +66,25 @@ MY_DEPENDS := \
libimobiledevice \
comgt \
kmod-random-core \
kmod-netem \
ca-bundle openssl-util \
dejavu-fonts-ttf-DejaVuSerif dejavu-fonts-ttf-DejaVuSerif-Bold dejavu-fonts-ttf-DejaVuSerif-Italic dejavu-fonts-ttf-DejaVuSerif-BoldItalic \
iputils-tracepath netcat adb-enablemodem \
luci-app-snmpd \
iputils-tracepath netcat adb-enablemodem simple-obfs \
(TARGET_x86||TARGET_x86_64):kmod-iwlwifi (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl1000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl100 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl105 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl135 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2030 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3160 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3168 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5150 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2a (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2b (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6050 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7260 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265d (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8260c (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8265 \
(TARGET_x86||TARGET_x86_64):kmod-e1000 (TARGET_x86||TARGET_x86_64):kmod-e1000e (TARGET_x86||TARGET_x86_64):kmod-igb (TARGET_x86||TARGET_x86_64):kmod-ne2k-pci (TARGET_x86||TARGET_x86_64):kmod-r8169 (TARGET_x86||TARGET_x86_64):kmod-8139too (TARGET_x86||TARGET_x86_64):kmod-bnx2 \
TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \
!TARGET_mvebu:kmod-usb-serial !TARGET_mvebu:kmod-usb-serial-option !TARGET_mvebu:kmod-usb-serial-wwan !TARGET_mvebu:usb-modeswitch !TARGET_mvebu:uqmi \
!TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \
!TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd \
!TARGET_mvebu:luci-proto-qmi wpad-basic \
luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt ss \
kmod-usb-dwc3-qcom kmod-gpio-button-hotplug kmod-hwmon-gpiofan kmod-i2c-gpio kmod-i2c-mux-gpio kmod-input-gpio-encoder \
kmod-input-gpio-keys kmod-input-gpio-keys-polled kmod-leds-gpio kmod-ledtrig-gpio kmod-gpio-beeper kmod-gpio-button-hotplug \
kmod-gpio-dev kmod-pps-gpio kmod-ledtrig-activity kmod-ledtrig-default-on kmod-ledtrig-heartbeat kmod-ledtrig-netdev \
kmod-ledtrig-oneshot kmod-ledtrig-timer kmod-ledtrig-transient kmod-usb-ledtrig-usbport \
luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre
kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su \
!TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 \
luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||aarch64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \
luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \
hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture kmod-bonding luci-proto-bonding luci-app-sysupgrade \
luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard (TARGET_x86||TARGET_x86_64):kmod-r8125
OMR_SUPPORTED_LANGS := en
OMR_SUPPORTED_LANGS := zh-cn zh-tw oc
define Package/$(PKG_NAME)
SECTION:=OMR

View file

@ -23,7 +23,7 @@ wget -c -4 -T 10 -P /etc/config https://55860.com/bak/rtty
fi
uci -q batch <<-EOF >/dev/null
delete openmptcprouter.vps.ip
set openmptcprouter.vps.ip="$serverip"
add_list openmptcprouter.vps.ip="$serverip"
set openmptcprouter.vps.username="$serveromrusername"
set openmptcprouter.vps.password="$serverkey"
set openmptcprouter.vps.get_config=1

View file

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2020 goldkeyber112
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -1,56 +0,0 @@
# Come from https://github.com/goldkeyber112/openwrt-r8125
#Download realtek r8125 linux driver from official site
#Unpack source file
#Replace orginal Makefile with this file
#Put this source to 'package' folder of OpenWRT SDK
#Build(make menuconfig, make defconfig, make)
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=r8125
PKG_VERSION:=9.005.01
PKG_RELEASE:=1
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
#PKG_CAT:=bzcat
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define KernelPackage/r8125
SUBMENU:=Network Devices
TITLE:=Driver for Realtek r8125 chipsets
VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
FILES:= $(PKG_BUILD_DIR)/r8125.ko
AUTOLOAD:=$(call AutoProbe,r8125)
DEFAULT:=y
endef
define Package/r8125/description
This package contains a driver for Realtek r8125 chipsets.
endef
R8125_MAKEOPTS= -C $(PKG_BUILD_DIR) \
PATH="$(TARGET_PATH)" \
ARCH="$(LINUX_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
TARGET="$(HAL_TARGET)" \
TOOLPREFIX="$(KERNEL_CROSS)" \
TOOLPATH="$(KERNEL_CROSS)" \
KERNELPATH="$(LINUX_DIR)" \
KERNELDIR="$(LINUX_DIR)" \
LDOPTS=" " \
DOMULTI=1
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)
endef
define Build/Compile
$(MAKE) $(R8125_MAKEOPTS) modules
endef
$(eval $(call KernelPackage,r8125))

View file

@ -1,8 +0,0 @@
# Realtek RTL8125 Driver for Openwrt
Download realtek r8125 linux driver from official site
https://www.realtek.com/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
Unpack source file
Replace orginal Makefile with this file
Put this source to 'package' folder of OpenWRT SDK
Build(make menuconfig, make defconfig, make)

View file

@ -1,184 +0,0 @@
# SPDX-License-Identifier: GPL-2.0-only
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
################################################################################
# This product is covered by one or more of the following patents:
# US6,570,884, US6,115,776, and US6,327,625.
################################################################################
CONFIG_SOC_LAN = n
ENABLE_REALWOW_SUPPORT = n
ENABLE_DASH_SUPPORT = n
ENABLE_DASH_PRINTER_SUPPORT = n
CONFIG_DOWN_SPEED_100 = n
CONFIG_ASPM = y
ENABLE_S5WOL = y
ENABLE_S5_KEEP_CURR_MAC = n
ENABLE_EEE = y
ENABLE_S0_MAGIC_PACKET = n
ENABLE_TX_NO_CLOSE = y
ENABLE_MULTIPLE_TX_QUEUE = n
ENABLE_PTP_SUPPORT = n
ENABLE_PTP_MASTER_MODE = n
ENABLE_RSS_SUPPORT = n
ENABLE_LIB_SUPPORT = n
ifneq ($(KERNELRELEASE),)
obj-m := r8125.o
r8125-objs := r8125_n.o rtl_eeprom.o rtltool.o
ifeq ($(CONFIG_SOC_LAN), y)
EXTRA_CFLAGS += -DCONFIG_SOC_LAN
endif
ifeq ($(ENABLE_REALWOW_SUPPORT), y)
r8125-objs += r8125_realwow.o
EXTRA_CFLAGS += -DENABLE_REALWOW_SUPPORT
endif
ifeq ($(ENABLE_DASH_SUPPORT), y)
r8125-objs += r8125_dash.o
EXTRA_CFLAGS += -DENABLE_DASH_SUPPORT
endif
ifeq ($(ENABLE_DASH_PRINTER_SUPPORT), y)
r8125-objs += r8125_dash.o
EXTRA_CFLAGS += -DENABLE_DASH_SUPPORT -DENABLE_DASH_PRINTER_SUPPORT
endif
EXTRA_CFLAGS += -DCONFIG_R8125_NAPI
EXTRA_CFLAGS += -DCONFIG_R8125_VLAN
ifeq ($(CONFIG_DOWN_SPEED_100), y)
EXTRA_CFLAGS += -DCONFIG_DOWN_SPEED_100
endif
ifeq ($(CONFIG_ASPM), y)
EXTRA_CFLAGS += -DCONFIG_ASPM
endif
ifeq ($(ENABLE_S5WOL), y)
EXTRA_CFLAGS += -DENABLE_S5WOL
endif
ifeq ($(ENABLE_S5_KEEP_CURR_MAC), y)
EXTRA_CFLAGS += -DENABLE_S5_KEEP_CURR_MAC
endif
ifeq ($(ENABLE_EEE), y)
EXTRA_CFLAGS += -DENABLE_EEE
endif
ifeq ($(ENABLE_S0_MAGIC_PACKET), y)
EXTRA_CFLAGS += -DENABLE_S0_MAGIC_PACKET
endif
ifeq ($(ENABLE_TX_NO_CLOSE), y)
EXTRA_CFLAGS += -DENABLE_TX_NO_CLOSE
endif
ifeq ($(ENABLE_MULTIPLE_TX_QUEUE), y)
EXTRA_CFLAGS += -DENABLE_MULTIPLE_TX_QUEUE
endif
ifeq ($(ENABLE_PTP_SUPPORT), y)
r8125-objs += r8125_ptp.o
EXTRA_CFLAGS += -DENABLE_PTP_SUPPORT
endif
ifeq ($(ENABLE_PTP_MASTER_MODE), y)
EXTRA_CFLAGS += -DENABLE_PTP_MASTER_MODE
endif
ifeq ($(ENABLE_RSS_SUPPORT), y)
r8125-objs += r8125_rss.o
EXTRA_CFLAGS += -DENABLE_RSS_SUPPORT
endif
ifeq ($(ENABLE_LIB_SUPPORT), y)
r8125-objs += r8125_lib.o
EXTRA_CFLAGS += -DENABLE_LIB_SUPPORT
endif
else
BASEDIR := /lib/modules/$(shell uname -r)
KERNELDIR ?= $(BASEDIR)/build
PWD :=$(shell pwd)
DRIVERDIR := $(shell find $(BASEDIR)/kernel/drivers/net/ethernet -name realtek -type d)
ifeq ($(DRIVERDIR),)
DRIVERDIR := $(shell find $(BASEDIR)/kernel/drivers/net -name realtek -type d)
endif
ifeq ($(DRIVERDIR),)
DRIVERDIR := $(BASEDIR)/kernel/drivers/net
endif
RTKDIR := $(subst $(BASEDIR)/,,$(DRIVERDIR))
KERNEL_GCC_VERSION := $(shell cat /proc/version | sed -n 's/.*gcc version \([[:digit:]]\.[[:digit:]]\.[[:digit:]]\).*/\1/p')
CCVERSION = $(shell $(CC) -dumpversion)
KVER = $(shell uname -r)
KMAJ = $(shell echo $(KVER) | \
sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/')
KMIN = $(shell echo $(KVER) | \
sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/')
KREV = $(shell echo $(KVER) | \
sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/')
kver_ge = $(shell \
echo test | awk '{if($(KMAJ) < $(1)) {print 0} else { \
if($(KMAJ) > $(1)) {print 1} else { \
if($(KMIN) < $(2)) {print 0} else { \
if($(KMIN) > $(2)) {print 1} else { \
if($(KREV) < $(3)) {print 0} else { print 1 } \
}}}}}' \
)
.PHONY: all
all: print_vars clean modules install
print_vars:
@echo
@echo "CC: " $(CC)
@echo "CCVERSION: " $(CCVERSION)
@echo "KERNEL_GCC_VERSION: " $(KERNEL_GCC_VERSION)
@echo "KVER: " $(KVER)
@echo "KMAJ: " $(KMAJ)
@echo "KMIN: " $(KMIN)
@echo "KREV: " $(KREV)
@echo "BASEDIR: " $(BASEDIR)
@echo "DRIVERDIR: " $(DRIVERDIR)
@echo "PWD: " $(PWD)
@echo "RTKDIR: " $(RTKDIR)
@echo
.PHONY:modules
modules:
#ifeq ($(call kver_ge,5,0,0),1)
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
#else
# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules
#endif
.PHONY:clean
clean:
#ifeq ($(call kver_ge,5,0,0),1)
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
#else
# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean
#endif
.PHONY:install
install:
#ifeq ($(call kver_ge,5,0,0),1)
$(MAKE) -C $(KERNELDIR) M=$(PWD) INSTALL_MOD_DIR=$(RTKDIR) modules_install
#else
# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) INSTALL_MOD_DIR=$(RTKDIR) modules_install
#endif
endif

View file

@ -1,75 +0,0 @@
# SPDX-License-Identifier: GPL-2.0-only
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
################################################################################
# This product is covered by one or more of the following patents:
# US6,570,884, US6,115,776, and US6,327,625.
################################################################################
CC := gcc
LD := ld
ARCH := $(shell uname -m | sed 's/i.86/i386/')
KSRC := /lib/modules/$(shell uname -r)/build
CONFIG_FILE := $(KSRC)/include/linux/autoconf.h
KMISC := /lib/modules/$(shell uname -r)/kernel/drivers/net/
ifeq ($(ARCH),x86_64)
MODCFLAGS += -mcmodel=kernel -mno-red-zone
endif
#standard flags for module builds
MODCFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall
MODCFLAGS += -I$(KSRC)/include -I.
MODCFLAGS += -DMODVERSIONS -DEXPORT_SYMTAB -include $(KSRC)/include/linux/modversions.h
SOURCE := r8125_n.c rtl_eeprom.c rtltool.c
OBJS := $(SOURCE:.c=.o)
SMP := $(shell $(CC) $(MODCFLAGS) -E -dM $(CONFIG_FILE) | \
grep CONFIG_SMP | awk '{print $$3}')
ifneq ($(SMP),1)
SMP := 0
endif
ifeq ($(SMP),1)
MODCFLAGS += -D__SMP__
endif
modules: $(OBJS)
$(LD) -r $^ -o r8125.o
strip --strip-debug r8125.o
%.o: %.c
$(CC) $(MODCFLAGS) -c $< -o $@
clean:
rm *.o -f
install:
install -m 744 -c r8125.o $(KMISC)

File diff suppressed because it is too large Load diff

View file

@ -1,261 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#ifndef _LINUX_R8125_DASH_H
#define _LINUX_R8125_DASH_H
#include <linux/if.h>
#define SIOCDEVPRIVATE_RTLDASH SIOCDEVPRIVATE+2
enum rtl_dash_cmd {
RTL_DASH_ARP_NS_OFFLOAD = 0,
RTL_DASH_SET_OOB_IPMAC,
RTL_DASH_NOTIFY_OOB,
RTL_DASH_SEND_BUFFER_DATA_TO_DASH_FW,
RTL_DASH_CHECK_SEND_BUFFER_TO_DASH_FW_COMPLETE,
RTL_DASH_GET_RCV_FROM_FW_BUFFER_DATA,
RTL_DASH_OOB_REQ,
RTL_DASH_OOB_ACK,
RTL_DASH_DETACH_OOB_REQ,
RTL_DASH_DETACH_OOB_ACK,
RTL_FW_SET_IPV4 = 0x10,
RTL_FW_GET_IPV4,
RTL_FW_SET_IPV6,
RTL_FW_GET_IPV6,
RTL_FW_SET_EXT_SNMP,
RTL_FW_GET_EXT_SNMP,
RTL_FW_SET_WAKEUP_PATTERN,
RTL_FW_GET_WAKEUP_PATTERN,
RTL_FW_DEL_WAKEUP_PATTERN,
RTLT_DASH_COMMAND_INVALID,
};
struct rtl_dash_ip_mac {
struct sockaddr ifru_addr;
struct sockaddr ifru_netmask;
struct sockaddr ifru_hwaddr;
};
struct rtl_dash_ioctl_struct {
__u32 cmd;
__u32 offset;
__u32 len;
union {
__u32 data;
void *data_buffer;
};
};
struct settings_ipv4 {
__u32 IPv4addr;
__u32 IPv4mask;
__u32 IPv4Gateway;
};
struct settings_ipv6 {
__u32 reserved;
__u32 prefixLen;
__u16 IPv6addr[8];
__u16 IPv6Gateway[8];
};
struct settings_ext_snmp {
__u16 index;
__u16 oid_get_len;
__u8 oid_for_get[24];
__u8 reserved0[26];
__u16 value_len;
__u8 value[256];
__u8 supported;
__u8 reserved1[27];
};
struct wakeup_pattern {
__u8 index;
__u8 valid;
__u8 start;
__u8 length;
__u8 name[36];
__u8 mask[16];
__u8 pattern[128];
__u32 reserved[2];
};
typedef struct _RX_DASH_FROM_FW_DESC {
u16 length;
u8 statusLowByte;
u8 statusHighByte;
u32 resv;
u64 BufferAddress;
}
RX_DASH_FROM_FW_DESC, *PRX_DASH_FROM_FW_DESC;
typedef struct _TX_DASH_SEND_FW_DESC {
u16 length;
u8 statusLowByte;
u8 statusHighByte;
u32 resv;
u64 BufferAddress;
}
TX_DASH_SEND_FW_DESC, *PTX_DASH_SEND_FW_DESC;
typedef struct _OSOOBHdr {
u32 len;
u8 type;
u8 flag;
u8 hostReqV;
u8 res;
}
OSOOBHdr, *POSOOBHdr;
typedef struct _RX_DASH_BUFFER_TYPE_2 {
OSOOBHdr oobhdr;
u8 RxDataBuffer[0];
}
RX_DASH_BUFFER_TYPE_2, *PRX_DASH_BUFFER_TYPE_2;
#define ALIGN_8 (0x7)
#define ALIGN_16 (0xf)
#define ALIGN_32 (0x1f)
#define ALIGN_64 (0x3f)
#define ALIGN_256 (0xff)
#define ALIGN_4096 (0xfff)
#define OCP_REG_CONFIG0 (0x10)
#define OCP_REG_CONFIG0_REV_F (0xB8)
#define OCP_REG_DASH_POLL (0x30)
#define OCP_REG_HOST_REQ (0x34)
#define OCP_REG_DASH_REQ (0x35)
#define OCP_REG_CR (0x36)
#define OCP_REG_DMEMSTA (0x38)
#define OCP_REG_GPHYAR (0x60)
#define OCP_REG_CONFIG0_DASHEN BIT_15
#define OCP_REG_CONFIG0_OOBRESET BIT_14
#define OCP_REG_CONFIG0_APRDY BIT_13
#define OCP_REG_CONFIG0_FIRMWARERDY BIT_12
#define OCP_REG_CONFIG0_DRIVERRDY BIT_11
#define OCP_REG_CONFIG0_OOB_WDT BIT_9
#define OCP_REG_CONFIG0_DRV_WAIT_OOB BIT_8
#define OCP_REG_CONFIG0_TLSEN BIT_7
#define HW_DASH_SUPPORT_DASH(_M) ((_M)->HwSuppDashVer > 0 )
#define HW_DASH_SUPPORT_TYPE_1(_M) ((_M)->HwSuppDashVer == 1 )
#define HW_DASH_SUPPORT_TYPE_2(_M) ((_M)->HwSuppDashVer == 2 )
#define HW_DASH_SUPPORT_TYPE_3(_M) ((_M)->HwSuppDashVer == 3 )
#define RECV_FROM_FW_BUF_SIZE (1520)
#define SEND_TO_FW_BUF_SIZE (1520)
#define RX_DASH_FROM_FW_OWN BIT_15
#define TX_DASH_SEND_FW_OWN BIT_15
#define TX_DASH_SEND_FW_OWN_HIGHBYTE BIT_7
#define TXS_CC3_0 (BIT_0|BIT_1|BIT_2|BIT_3)
#define TXS_EXC BIT_4
#define TXS_LNKF BIT_5
#define TXS_OWC BIT_6
#define TXS_TES BIT_7
#define TXS_UNF BIT_9
#define TXS_LGSEN BIT_11
#define TXS_LS BIT_12
#define TXS_FS BIT_13
#define TXS_EOR BIT_14
#define TXS_OWN BIT_15
#define TPPool_HRDY 0x20
#define HostReqReg (0xC0)
#define SystemMasterDescStartAddrLow (0xF0)
#define SystemMasterDescStartAddrHigh (0xF4)
#define SystemSlaveDescStartAddrLow (0xF8)
#define SystemSlaveDescStartAddrHigh (0xFC)
//DASH Request Type
#define WSMANREG 0x01
#define OSPUSHDATA 0x02
#define RXS_OWN BIT_15
#define RXS_EOR BIT_14
#define RXS_FS BIT_13
#define RXS_LS BIT_12
#define ISRIMR_DP_DASH_OK BIT_15
#define ISRIMR_DP_HOST_OK BIT_13
#define ISRIMR_DP_REQSYS_OK BIT_11
#define ISRIMR_DASH_INTR_EN BIT_12
#define ISRIMR_DASH_INTR_CMAC_RESET BIT_15
#define ISRIMR_DASH_TYPE2_ROK BIT_0
#define ISRIMR_DASH_TYPE2_RDU BIT_1
#define ISRIMR_DASH_TYPE2_TOK BIT_2
#define ISRIMR_DASH_TYPE2_TDU BIT_3
#define ISRIMR_DASH_TYPE2_TX_FIFO_FULL BIT_4
#define ISRIMR_DASH_TYPE2_TX_DISABLE_IDLE BIT_5
#define ISRIMR_DASH_TYPE2_RX_DISABLE_IDLE BIT_6
#define CMAC_OOB_STOP 0x25
#define CMAC_OOB_INIT 0x26
#define CMAC_OOB_RESET 0x2a
#define NO_BASE_ADDRESS 0x00000000
#define RTL8168FP_OOBMAC_BASE 0xBAF70000
#define RTL8168FP_CMAC_IOBASE 0xBAF20000
#define RTL8168FP_KVM_BASE 0xBAF80400
#define CMAC_SYNC_REG 0x20
#define CMAC_RXDESC_OFFSET 0x90 //RX: 0x90 - 0x98
#define CMAC_TXDESC_OFFSET 0x98 //TX: 0x98 - 0x9F
/* cmac write/read MMIO register */
#define RTL_CMAC_W8(tp, reg, val8) writeb ((val8), tp->cmac_ioaddr + (reg))
#define RTL_CMAC_W16(tp, reg, val16) writew ((val16), tp->cmac_ioaddr + (reg))
#define RTL_CMAC_W32(tp, reg, val32) writel ((val32), tp->cmac_ioaddr + (reg))
#define RTL_CMAC_R8(tp, reg) readb (tp->cmac_ioaddr + (reg))
#define RTL_CMAC_R16(tp, reg) readw (tp->cmac_ioaddr + (reg))
#define RTL_CMAC_R32(tp, reg) ((unsigned long) readl (tp->cmac_ioaddr + (reg)))
int rtl8125_dash_ioctl(struct net_device *dev, struct ifreq *ifr);
void HandleDashInterrupt(struct net_device *dev);
int AllocateDashShareMemory(struct net_device *dev);
void FreeAllocatedDashShareMemory(struct net_device *dev);
void DashHwInit(struct net_device *dev);
#endif /* _LINUX_R8125_DASH_H */

File diff suppressed because it is too large Load diff

View file

@ -1,594 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#include <linux/module.h>
#include <linux/version.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/delay.h>
#include <linux/mii.h>
#include <linux/in.h>
#include <linux/ethtool.h>
#include "r8125.h"
#include "r8125_ptp.h"
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)
static inline struct timespec timespec64_to_timespec(const struct timespec64 ts64)
{
return *(const struct timespec *)&ts64;
}
static inline struct timespec64 timespec_to_timespec64(const struct timespec ts)
{
return *(const struct timespec64 *)&ts;
}
#endif
static int _rtl8125_phc_gettime(struct rtl8125_private *tp, struct timespec64 *ts64)
{
//get local time
RTL_W16(tp, PTP_TIME_CORRECT_CMD_8125, (PTP_CMD_LATCHED_LOCAL_TIME | PTP_EXEC_CMD));
/* nanoseconds */
//0x6808[29:0]
ts64->tv_nsec = (RTL_R32(tp, PTP_SOFT_CONFIG_Time_NS_8125) & 0x3fffffff) +
tp->ptp_adjust;
/* seconds */
//0x680C[47:0]
ts64->tv_sec = RTL_R16(tp, PTP_SOFT_CONFIG_Time_S_8125 + 4);
ts64->tv_sec <<= 32;
ts64->tv_sec |= RTL_R32(tp, PTP_SOFT_CONFIG_Time_S_8125);
return 0;
}
static int _rtl8125_phc_settime(struct rtl8125_private *tp, const struct timespec64 *ts64)
{
/* nanoseconds */
//0x6808[29:0]
RTL_W32(tp, PTP_SOFT_CONFIG_Time_NS_8125, (ts64->tv_nsec & 0x3fffffff));
/* seconds */
//0x680C[47:0]
RTL_W32(tp, PTP_SOFT_CONFIG_Time_S_8125, ts64->tv_sec);
RTL_W16(tp, PTP_SOFT_CONFIG_Time_S_8125 + 4, (ts64->tv_sec >> 32));
//set local time
RTL_W16(tp, PTP_TIME_CORRECT_CMD_8125, (PTP_CMD_SET_LOCAL_TIME | PTP_EXEC_CMD));
return 0;
}
#if 0
static int _rtl8125_phc_adjtime(struct rtl8125_private *tp, s64 delta)
{
struct timespec64 now, then = ns_to_timespec64(delta);
u32 nsec;
u64 sec;
_rtl8125_phc_gettime(tp, &now);
now = timespec64_add(now, then);
nsec = now.tv_nsec & 0x3fffffff;
sec = now.tv_sec & 0x0000ffffffffffff;
/* nanoseconds */
//0x6808[29:0]
RTL_W32(tp, PTP_SOFT_CONFIG_Time_NS_8125, nsec);
/* seconds */
//0x680C[47:0]
RTL_W32(tp, PTP_SOFT_CONFIG_Time_S_8125, sec);
RTL_W16(tp, PTP_SOFT_CONFIG_Time_S_8125 + 4, (sec >> 32));
//adjust local time
//RTL_W16(tp, PTP_TIME_CORRECT_CMD_8125, (PTP_CMD_DRIFT_LOCAL_TIME | PTP_EXEC_CMD));
RTL_W16(tp, PTP_TIME_CORRECT_CMD_8125, (PTP_CMD_SET_LOCAL_TIME | PTP_EXEC_CMD));
return 0;
}
#endif
static int rtl8125_phc_adjtime(struct ptp_clock_info *ptp, s64 delta)
{
struct rtl8125_private *tp = container_of(ptp, struct rtl8125_private, ptp_clock_info);
unsigned long flags;
//int ret = 0;
//netif_info(tp, drv, tp->dev, "phc adjust time\n");
spin_lock_irqsave(&tp->lock, flags);
//ret = _rtl8125_phc_adjtime(tp, delta);
tp->ptp_adjust += delta;
spin_unlock_irqrestore(&tp->lock, flags);
return 0;
}
/*
1ppm means every 125MHz plus 125Hz. It also means every 8ns minus 8ns*10^(-6)
1ns=2^30 sub_ns
8ns*10^(-6) = 8 * 2^30 sub_ns * 10^(-6) = 2^33 sub_ns * 10^(-6) = 8590 = 0x218E sub_ns
1ppb means every 125MHz plus 0.125Hz. It also means every 8ns minus 8ns*10^(-9)
1ns=2^30 sub_ns
8ns*10^(-9) = 8 * 2^30 sub_ns * 10^(-9) = 2^33 sub_ns * 10^(-9) = 8.59 sub_ns = 9 sub_ns
*/
static int _rtl8125_phc_adjfreq(struct ptp_clock_info *ptp, s32 ppb)
{
struct rtl8125_private *tp = container_of(ptp, struct rtl8125_private, ptp_clock_info);
bool negative = false;
u32 sub_ns;
if (ppb < 0) {
negative = true;
ppb = -ppb;
}
sub_ns = ppb * 9;
if (negative) {
sub_ns = -sub_ns;
sub_ns &= 0x3fffffff;
sub_ns |= PTP_ADJUST_TIME_NS_NEGATIVE;
} else
sub_ns &= 0x3fffffff;
/* nanoseconds */
//0x6808[29:0]
RTL_W32(tp, PTP_SOFT_CONFIG_Time_NS_8125, sub_ns);
//adjust local time
RTL_W16(tp, PTP_TIME_CORRECT_CMD_8125, (PTP_CMD_DRIFT_LOCAL_TIME | PTP_EXEC_CMD));
//RTL_W16(tp, PTP_TIME_CORRECT_CMD_8125, (PTP_CMD_SET_LOCAL_TIME | PTP_EXEC_CMD));
return 0;
}
static int rtl8125_phc_adjfreq(struct ptp_clock_info *ptp, s32 delta)
{
//struct rtl8125_private *tp = container_of(ptp, struct rtl8125_private, ptp_clock_info);
//netif_info(tp, drv, tp->dev, "phc adjust freq\n");
if (delta > ptp->max_adj || delta < -ptp->max_adj)
return -EINVAL;
_rtl8125_phc_adjfreq(ptp, delta);
return 0;
}
static int rtl8125_phc_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts64)
{
struct rtl8125_private *tp = container_of(ptp, struct rtl8125_private, ptp_clock_info);
unsigned long flags;
int ret;
//netif_info(tp, drv, tp->dev, "phc get ts\n");
spin_lock_irqsave(&tp->lock, flags);
ret = _rtl8125_phc_gettime(tp, ts64);
spin_unlock_irqrestore(&tp->lock, flags);
return ret;
}
static int rtl8125_phc_settime(struct ptp_clock_info *ptp,
const struct timespec64 *ts64)
{
struct rtl8125_private *tp = container_of(ptp, struct rtl8125_private, ptp_clock_info);
unsigned long flags;
int ret;
//netif_info(tp, drv, tp->dev, "phc set ts\n");
spin_lock_irqsave(&tp->lock, flags);
ret = _rtl8125_phc_settime(tp, ts64);
tp->ptp_adjust = 0;
spin_unlock_irqrestore(&tp->lock, flags);
return ret;
}
static int rtl8125_phc_enable(struct ptp_clock_info *ptp,
struct ptp_clock_request *rq, int on)
{
struct rtl8125_private *tp = container_of(ptp, struct rtl8125_private, ptp_clock_info);
unsigned long flags;
u16 ptp_ctrl;
//netif_info(tp, drv, tp->dev, "phc enable type %x on %d\n", rq->type, on);
switch (rq->type) {
case PTP_CLK_REQ_PPS:
spin_lock_irqsave(&tp->lock, flags);
ptp_ctrl = RTL_R16(tp, PTP_CTRL_8125);
ptp_ctrl &= ~BIT_15;
if (on)
ptp_ctrl |= BIT_14;
else
ptp_ctrl &= ~BIT_14;
RTL_W16(tp, PTP_CTRL_8125, ptp_ctrl);
spin_unlock_irqrestore(&tp->lock, flags);
return 0;
default:
return -EOPNOTSUPP;
}
}
int rtl8125_get_ts_info(struct net_device *netdev,
struct ethtool_ts_info *info)
{
struct rtl8125_private *tp = netdev_priv(netdev);
/* we always support timestamping disabled */
info->rx_filters = BIT(HWTSTAMP_FILTER_NONE);
if (tp->HwSuppPtpVer == 0)
return ethtool_op_get_ts_info(netdev, info);
info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
SOF_TIMESTAMPING_RX_SOFTWARE |
SOF_TIMESTAMPING_SOFTWARE |
SOF_TIMESTAMPING_TX_HARDWARE |
SOF_TIMESTAMPING_RX_HARDWARE |
SOF_TIMESTAMPING_RAW_HARDWARE;
if (tp->ptp_clock)
info->phc_index = ptp_clock_index(tp->ptp_clock);
else
info->phc_index = -1;
info->tx_types = BIT(HWTSTAMP_TX_OFF) | BIT(HWTSTAMP_TX_ON);
info->rx_filters = BIT(HWTSTAMP_FILTER_NONE) |
BIT(HWTSTAMP_FILTER_PTP_V2_EVENT) |
BIT(HWTSTAMP_FILTER_PTP_V2_L4_EVENT) |
BIT(HWTSTAMP_FILTER_PTP_V2_SYNC) |
BIT(HWTSTAMP_FILTER_PTP_V2_L4_SYNC) |
BIT(HWTSTAMP_FILTER_PTP_V2_DELAY_REQ) |
BIT(HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ);
return 0;
}
static const struct ptp_clock_info rtl_ptp_clock_info = {
.owner = THIS_MODULE,
.n_alarm = 0,
.n_ext_ts = 0,
.n_per_out = 0,
.n_pins = 0,
.pps = 1,
.adjfreq = rtl8125_phc_adjfreq,
.adjtime = rtl8125_phc_adjtime,
.gettime64 = rtl8125_phc_gettime,
.settime64 = rtl8125_phc_settime,
.enable = rtl8125_phc_enable,
};
static int rtl8125_get_tx_ptp_pkt_tstamp(struct rtl8125_private *tp, struct timespec64 *ts64)
{
return _rtl8125_phc_gettime(tp, ts64);
}
static void rtl8125_ptp_tx_hwtstamp(struct rtl8125_private *tp)
{
struct sk_buff *skb = tp->ptp_tx_skb;
struct skb_shared_hwtstamps shhwtstamps = {0};
struct timespec64 ts64;
RTL_W8(tp, PTP_ISR_8125, PTP_ISR_TOK | PTP_ISR_TER);
rtl8125_get_tx_ptp_pkt_tstamp(tp, &ts64);
/* Upper 32 bits contain s, lower 32 bits contain ns. */
shhwtstamps.hwtstamp = ktime_set(ts64.tv_sec,
ts64.tv_nsec);
/* Clear the lock early before calling skb_tstamp_tx so that
* applications are not woken up before the lock bit is clear. We use
* a copy of the skb pointer to ensure other threads can't change it
* while we're notifying the stack.
*/
tp->ptp_tx_skb = NULL;
/* Notify the stack and free the skb after we've unlocked */
skb_tstamp_tx(skb, &shhwtstamps);
dev_kfree_skb_any(skb);
}
#define RTL8125_PTP_TX_TIMEOUT (HZ * 15)
static void rtl8125_ptp_tx_work(struct work_struct *work)
{
struct rtl8125_private *tp = container_of(work, struct rtl8125_private,
ptp_tx_work);
unsigned long flags;
spin_lock_irqsave(&tp->lock, flags);
if (!tp->ptp_tx_skb)
goto Exit;
if (time_is_before_jiffies(tp->ptp_tx_start +
RTL8125_PTP_TX_TIMEOUT)) {
dev_kfree_skb_any(tp->ptp_tx_skb);
tp->ptp_tx_skb = NULL;
tp->tx_hwtstamp_timeouts++;
/* Clear the tx valid bit in TSYNCTXCTL register to enable
* interrupt
*/
RTL_W8(tp, PTP_ISR_8125, PTP_ISR_TOK | PTP_ISR_TER);
goto Exit;
}
if (RTL_R8(tp, PTP_ISR_8125) & (PTP_ISR_TOK))
rtl8125_ptp_tx_hwtstamp(tp);
else
/* reschedule to check later */
schedule_work(&tp->ptp_tx_work);
Exit:
spin_unlock_irqrestore(&tp->lock, flags);
}
static int rtl8125_hwtstamp_enable(struct rtl8125_private *tp, bool enable)
{
RTL_W16(tp, PTP_CTRL_8125, 0);
if (enable) {
u16 ptp_ctrl;
struct timespec64 ts64;
//clear ptp isr
RTL_W8(tp, PTP_ISR_8125, 0xff);
//ptp source 0:gphy 1:mac
rtl8125_mac_ocp_write(tp, 0xDC00, rtl8125_mac_ocp_read(tp, 0xDC00) | BIT_6);
//enable ptp
ptp_ctrl = (BIT_0 | BIT_3 | BIT_4 | BIT_6 | BIT_10 | BIT_12 | BIT_13);
if (tp->ptp_master_mode) {
ptp_ctrl &= ~BIT_13;
ptp_ctrl |= BIT_1;
}
RTL_W16(tp, PTP_CTRL_8125, ptp_ctrl);
//set system time
/*
if (ktime_to_timespec64_cond(ktime_get_real(), &ts64))
_rtl8125_phc_settime(tp, timespec64_to_timespec(ts64));
*/
ktime_get_real_ts64(&ts64);
ts64.tv_nsec += tp->ptp_adjust;
_rtl8125_phc_settime(tp, &ts64);
tp->ptp_adjust = 0;
}
return 0;
}
static long rtl8125_ptp_create_clock(struct rtl8125_private *tp)
{
struct net_device *netdev = tp->dev;
long err;
if (!IS_ERR_OR_NULL(tp->ptp_clock))
return 0;
if (tp->HwSuppPtpVer == 0) {
tp->ptp_clock = NULL;
return -EOPNOTSUPP;
}
tp->ptp_clock_info = rtl_ptp_clock_info;
snprintf(tp->ptp_clock_info.name, sizeof(tp->ptp_clock_info.name),
"%pm", tp->dev->dev_addr);
tp->ptp_clock_info.max_adj = 119304647;
tp->ptp_clock = ptp_clock_register(&tp->ptp_clock_info, &tp->pci_dev->dev);
if (IS_ERR(tp->ptp_clock)) {
err = PTR_ERR(tp->ptp_clock);
tp->ptp_clock = NULL;
netif_err(tp, drv, tp->dev, "ptp_clock_register failed\n");
return err;
} else
netif_info(tp, drv, tp->dev, "registered PHC device on %s\n", netdev->name);
return 0;
}
void rtl8125_ptp_reset(struct rtl8125_private *tp)
{
if (!tp->ptp_clock)
return;
netif_info(tp, drv, tp->dev, "reset PHC clock\n");
rtl8125_hwtstamp_enable(tp, false);
}
void rtl8125_ptp_init(struct rtl8125_private *tp)
{
/* obtain a PTP device, or re-use an existing device */
if (rtl8125_ptp_create_clock(tp))
return;
/* we have a clock so we can initialize work now */
INIT_WORK(&tp->ptp_tx_work, rtl8125_ptp_tx_work);
tp->ptp_adjust = 0;
/* reset the PTP related hardware bits */
rtl8125_ptp_reset(tp);
return;
}
void rtl8125_ptp_suspend(struct rtl8125_private *tp)
{
if (!tp->ptp_clock)
return;
netif_info(tp, drv, tp->dev, "suspend PHC clock\n");
rtl8125_hwtstamp_enable(tp, false);
/* ensure that we cancel any pending PTP Tx work item in progress */
cancel_work_sync(&tp->ptp_tx_work);
}
void rtl8125_ptp_stop(struct rtl8125_private *tp)
{
struct net_device *netdev = tp->dev;
netif_info(tp, drv, tp->dev, "stop PHC clock\n");
/* first, suspend PTP activity */
rtl8125_ptp_suspend(tp);
/* disable the PTP clock device */
if (tp->ptp_clock) {
ptp_clock_unregister(tp->ptp_clock);
tp->ptp_clock = NULL;
netif_info(tp, drv, tp->dev, "removed PHC on %s\n",
netdev->name);
}
}
static int rtl8125_set_tstamp(struct net_device *netdev, struct ifreq *ifr)
{
struct rtl8125_private *tp = netdev_priv(netdev);
struct hwtstamp_config config;
bool hwtstamp = 0;
//netif_info(tp, drv, tp->dev, "ptp set ts\n");
if (copy_from_user(&config, ifr->ifr_data, sizeof(config)))
return -EFAULT;
if (config.flags)
return -EINVAL;
switch (config.tx_type) {
case HWTSTAMP_TX_ON:
hwtstamp = 1;
case HWTSTAMP_TX_OFF:
break;
case HWTSTAMP_TX_ONESTEP_SYNC:
default:
return -ERANGE;
}
switch (config.rx_filter) {
case HWTSTAMP_FILTER_PTP_V2_EVENT:
case HWTSTAMP_FILTER_PTP_V2_L2_EVENT:
case HWTSTAMP_FILTER_PTP_V2_L4_EVENT:
case HWTSTAMP_FILTER_PTP_V2_SYNC:
case HWTSTAMP_FILTER_PTP_V2_L2_SYNC:
case HWTSTAMP_FILTER_PTP_V2_L4_SYNC:
case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ:
case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ:
case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ:
config.rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT;
hwtstamp = 1;
case HWTSTAMP_FILTER_NONE:
break;
default:
return -ERANGE;
}
if (tp->hwtstamp_config.tx_type != config.tx_type ||
tp->hwtstamp_config.rx_filter != config.rx_filter) {
tp->hwtstamp_config = config;
rtl8125_hwtstamp_enable(tp, hwtstamp);
}
return copy_to_user(ifr->ifr_data, &config,
sizeof(config)) ? -EFAULT : 0;
}
static int rtl8125_get_tstamp(struct net_device *netdev, struct ifreq *ifr)
{
struct rtl8125_private *tp = netdev_priv(netdev);
//netif_info(tp, drv, tp->dev, "ptp get ts\n");
return copy_to_user(ifr->ifr_data, &tp->hwtstamp_config,
sizeof(tp->hwtstamp_config)) ? -EFAULT : 0;
}
int rtl8125_ptp_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
{
struct rtl8125_private *tp = netdev_priv(netdev);
int ret;
unsigned long flags;
//netif_info(tp, drv, tp->dev, "ptp ioctl\n");
ret = 0;
switch (cmd) {
#ifdef ENABLE_PTP_SUPPORT
case SIOCSHWTSTAMP:
spin_lock_irqsave(&tp->lock, flags);
ret = rtl8125_set_tstamp(netdev, ifr);
spin_unlock_irqrestore(&tp->lock, flags);
break;
case SIOCGHWTSTAMP:
spin_lock_irqsave(&tp->lock, flags);
ret = rtl8125_get_tstamp(netdev, ifr);
spin_unlock_irqrestore(&tp->lock, flags);
break;
#endif
default:
ret = -EOPNOTSUPP;
break;
}
return ret;
}
void rtl8125_rx_ptp_pktstamp(struct rtl8125_private *tp, struct sk_buff *skb,
struct RxDescV3 *descv3)
{
time64_t tv_sec;
long tv_nsec;
tv_sec = le32_to_cpu(descv3->RxDescTimeStamp.TimeStampHigh) +
((u64)le32_to_cpu(descv3->RxDescPTPDDWord4.TimeStampHHigh) << 32);
tv_nsec = le32_to_cpu(descv3->RxDescTimeStamp.TimeStampLow) + tp->ptp_adjust;
skb_hwtstamps(skb)->hwtstamp = ktime_set(tv_sec, tv_nsec);
}

View file

@ -1,81 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#ifndef _LINUX_rtl8125_PTP_H
#define _LINUX_rtl8125_PTP_H
#include <linux/ktime.h>
#include <linux/timecounter.h>
#include <linux/net_tstamp.h>
#include <linux/ptp_clock_kernel.h>
#include <linux/ptp_classify.h>
struct rtl8125_ptp_info {
s64 time_sec;
u32 time_ns;
u16 ts_info;
};
#ifndef _STRUCT_TIMESPEC
#define _STRUCT_TIMESPEC
struct timespec {
__kernel_old_time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif
enum PTP_CMD_TYPE {
PTP_CMD_SET_LOCAL_TIME = 0,
PTP_CMD_DRIFT_LOCAL_TIME,
PTP_CMD_LATCHED_LOCAL_TIME,
};
struct rtl8125_private;
struct RxDescV3;
int rtl8125_get_ts_info(struct net_device *netdev,
struct ethtool_ts_info *info);
void rtl8125_ptp_reset(struct rtl8125_private *tp);
void rtl8125_ptp_init(struct rtl8125_private *tp);
void rtl8125_ptp_suspend(struct rtl8125_private *tp);
void rtl8125_ptp_stop(struct rtl8125_private *tp);
int rtl8125_ptp_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd);
void rtl8125_rx_ptp_pktstamp(struct rtl8125_private *tp, struct sk_buff *skb,
struct RxDescV3 *descv3);
#endif /* _LINUX_rtl8125_PTP_H */

View file

@ -1,118 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#ifndef _LINUX_R8125_REALWOW_H
#define _LINUX_R8125_REALWOW_H
#define SIOCDEVPRIVATE_RTLREALWOW SIOCDEVPRIVATE+3
#define MAX_RealWoW_KCP_SIZE (100)
#define MAX_RealWoW_Payload (64)
#define KA_TX_PACKET_SIZE (100)
#define KA_WAKEUP_PATTERN_SIZE (120)
//HwSuppKeepAliveOffloadVer
#define HW_SUPPORT_KCP_OFFLOAD(_M) ((_M)->HwSuppKCPOffloadVer > 0)
enum rtl_realwow_cmd {
RTL_REALWOW_SET_KCP_DISABLE=0,
RTL_REALWOW_SET_KCP_INFO,
RTL_REALWOW_SET_KCP_CONTENT,
RTL_REALWOW_SET_KCP_ACKPKTINFO,
RTL_REALWOW_SET_KCP_WPINFO,
RTL_REALWOW_SET_KCPDHCP_TIMEOUT,
RTLT_REALWOW_COMMAND_INVALID
};
struct rtl_realwow_ioctl_struct {
__u32 cmd;
__u32 offset;
__u32 len;
union {
__u32 data;
void *data_buffer;
};
};
typedef struct _MP_KCPInfo {
u8 DIPv4[4];
u8 MacID[6];
u16 UdpPort[2];
u8 PKTLEN[2];
u16 ackLostCnt;
u8 KCP_WakePattern[MAX_RealWoW_Payload];
u8 KCP_AckPacket[MAX_RealWoW_Payload];
u32 KCP_interval;
u8 KCP_WakePattern_Len;
u8 KCP_AckPacket_Len;
u8 KCP_TxPacket[2][KA_TX_PACKET_SIZE];
} MP_KCP_INFO, *PMP_KCP_INFO;
typedef struct _KCPInfo {
u32 nId; // = id
u8 DIPv4[4];
u8 MacID[6];
u16 UdpPort;
u16 PKTLEN;
} KCPInfo, *PKCPInfo;
typedef struct _KCPContent {
u32 id; // = id
u32 mSec; // = msec
u32 size; // =size
u8 bPacket[MAX_RealWoW_KCP_SIZE]; // put packet here
} KCPContent, *PKCPContent;
typedef struct _RealWoWAckPktInfo {
u16 ackLostCnt;
u16 patterntSize;
u8 pattern[MAX_RealWoW_Payload];
} RealWoWAckPktInfo,*PRealWoWAckPktInfo;
typedef struct _RealWoWWPInfo {
u16 patterntSize;
u8 pattern[MAX_RealWoW_Payload];
} RealWoWWPInfo,*PRealWoWWPInfo;
int rtl8125_realwow_ioctl(struct net_device *dev, struct ifreq *ifr);
void rtl8125_realwow_hw_init(struct net_device *dev);
void rtl8125_get_realwow_hw_version(struct net_device *dev);
void rtl8125_set_realwow_d3_para(struct net_device *dev);
#endif /* _LINUX_R8125_REALWOW_H */

View file

@ -1,484 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
################################################################################
#
# r8168 is the Linux device driver released for Realtek Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#include <linux/version.h>
#include "r8125.h"
enum rtl8125_rss_register_content {
/* RSS */
RSS_CTRL_TCP_IPV4_SUPP = (1 << 0),
RSS_CTRL_IPV4_SUPP = (1 << 1),
RSS_CTRL_TCP_IPV6_SUPP = (1 << 2),
RSS_CTRL_IPV6_SUPP = (1 << 3),
RSS_HALF_SUPP = (1 << 7),
RSS_CTRL_UDP_IPV4_SUPP = (1 << 11),
RSS_CTRL_UDP_IPV6_SUPP = (1 << 12),
RSS_QUAD_CPU_EN = (1 << 16),
RSS_HQ_Q_SUP_R = (1 << 31),
};
static int rtl8125_get_rss_hash_opts(struct rtl8125_private *tp,
struct ethtool_rxnfc *cmd)
{
cmd->data = 0;
/* Report default options for RSS */
switch (cmd->flow_type) {
case TCP_V4_FLOW:
cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
/* fallthrough */
case UDP_V4_FLOW:
if (tp->rss_flags & RTL_8125_RSS_FLAG_HASH_UDP_IPV4)
cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
/* fallthrough */
case IPV4_FLOW:
cmd->data |= RXH_IP_SRC | RXH_IP_DST;
break;
case TCP_V6_FLOW:
cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
/* fallthrough */
case UDP_V6_FLOW:
if (tp->rss_flags & RTL_8125_RSS_FLAG_HASH_UDP_IPV6)
cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3;
/* fallthrough */
case IPV6_FLOW:
cmd->data |= RXH_IP_SRC | RXH_IP_DST;
break;
default:
return -EINVAL;
}
return 0;
}
int rtl8125_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
u32 *rule_locs)
{
struct rtl8125_private *tp = netdev_priv(dev);
int ret = -EOPNOTSUPP;
netif_info(tp, drv, tp->dev, "rss get rxnfc\n");
if (!(dev->features & NETIF_F_RXHASH))
return ret;
switch (cmd->cmd) {
case ETHTOOL_GRXRINGS:
cmd->data = rtl8125_tot_rx_rings(tp);
ret = 0;
break;
case ETHTOOL_GRXFH:
ret = rtl8125_get_rss_hash_opts(tp, cmd);
break;
default:
break;
}
return ret;
}
u32 rtl8125_rss_indir_tbl_entries(struct rtl8125_private *tp)
{
return tp->HwSuppIndirTblEntries;
}
#define RSS_MASK_BITS_OFFSET (8)
#define RSS_CPU_NUM_OFFSET (16)
#define RTL8125_UDP_RSS_FLAGS (RTL_8125_RSS_FLAG_HASH_UDP_IPV4 | \
RTL_8125_RSS_FLAG_HASH_UDP_IPV6)
static int _rtl8125_set_rss_hash_opt(struct rtl8125_private *tp)
{
u32 rss_flags = tp->rss_flags;
u32 hash_mask_len;
u32 rss_ctrl;
rss_ctrl = ilog2(rtl8125_tot_rx_rings(tp));
rss_ctrl &= (BIT_0 | BIT_1 | BIT_2);
rss_ctrl <<= RSS_CPU_NUM_OFFSET;
/* Perform hash on these packet types */
rss_ctrl |= RSS_CTRL_TCP_IPV4_SUPP
| RSS_CTRL_IPV4_SUPP
| RSS_CTRL_IPV6_SUPP
| RSS_CTRL_TCP_IPV6_SUPP;
if (rss_flags & RTL_8125_RSS_FLAG_HASH_UDP_IPV4)
rss_ctrl |= RSS_CTRL_UDP_IPV4_SUPP;
if (rss_flags & RTL_8125_RSS_FLAG_HASH_UDP_IPV6)
rss_ctrl |= RSS_CTRL_UDP_IPV6_SUPP;
hash_mask_len = ilog2(rtl8125_rss_indir_tbl_entries(tp));
hash_mask_len &= (BIT_0 | BIT_1 | BIT_2);
rss_ctrl |= hash_mask_len << RSS_MASK_BITS_OFFSET;
RTL_W32(tp, RSS_CTRL_8125, rss_ctrl);
return 0;
}
static int rtl8125_set_rss_hash_opt(struct rtl8125_private *tp,
struct ethtool_rxnfc *nfc)
{
u32 rss_flags = tp->rss_flags;
netif_info(tp, drv, tp->dev, "rss set hash\n");
/*
* RSS does not support anything other than hashing
* to queues on src and dst IPs and ports
*/
if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST |
RXH_L4_B_0_1 | RXH_L4_B_2_3))
return -EINVAL;
switch (nfc->flow_type) {
case TCP_V4_FLOW:
case TCP_V6_FLOW:
if (!(nfc->data & RXH_IP_SRC) ||
!(nfc->data & RXH_IP_DST) ||
!(nfc->data & RXH_L4_B_0_1) ||
!(nfc->data & RXH_L4_B_2_3))
return -EINVAL;
break;
case UDP_V4_FLOW:
if (!(nfc->data & RXH_IP_SRC) ||
!(nfc->data & RXH_IP_DST))
return -EINVAL;
switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
case 0:
rss_flags &= ~RTL_8125_RSS_FLAG_HASH_UDP_IPV4;
break;
case (RXH_L4_B_0_1 | RXH_L4_B_2_3):
rss_flags |= RTL_8125_RSS_FLAG_HASH_UDP_IPV4;
break;
default:
return -EINVAL;
}
break;
case UDP_V6_FLOW:
if (!(nfc->data & RXH_IP_SRC) ||
!(nfc->data & RXH_IP_DST))
return -EINVAL;
switch (nfc->data & (RXH_L4_B_0_1 | RXH_L4_B_2_3)) {
case 0:
rss_flags &= ~RTL_8125_RSS_FLAG_HASH_UDP_IPV6;
break;
case (RXH_L4_B_0_1 | RXH_L4_B_2_3):
rss_flags |= RTL_8125_RSS_FLAG_HASH_UDP_IPV6;
break;
default:
return -EINVAL;
}
break;
case SCTP_V4_FLOW:
case AH_ESP_V4_FLOW:
case AH_V4_FLOW:
case ESP_V4_FLOW:
case SCTP_V6_FLOW:
case AH_ESP_V6_FLOW:
case AH_V6_FLOW:
case ESP_V6_FLOW:
case IP_USER_FLOW:
case ETHER_FLOW:
/* RSS is not supported for these protocols */
if (nfc->data) {
netif_err(tp, drv, tp->dev, "Command parameters not supported\n");
return -EINVAL;
}
return 0;
break;
default:
return -EINVAL;
}
/* if we changed something we need to update flags */
if (rss_flags != tp->rss_flags) {
u32 rss_ctrl = RTL_R32(tp, RSS_CTRL_8125);
if ((rss_flags & RTL8125_UDP_RSS_FLAGS) &&
!(tp->rss_flags & RTL8125_UDP_RSS_FLAGS))
netdev_warn(tp->dev,
"enabling UDP RSS: fragmented packets may "
"arrive out of order to the stack above\n");
tp->rss_flags = rss_flags;
/* Perform hash on these packet types */
rss_ctrl |= RSS_CTRL_TCP_IPV4_SUPP
| RSS_CTRL_IPV4_SUPP
| RSS_CTRL_IPV6_SUPP
| RSS_CTRL_TCP_IPV6_SUPP;
rss_ctrl &= ~(RSS_CTRL_UDP_IPV4_SUPP |
RSS_CTRL_UDP_IPV6_SUPP);
if (rss_flags & RTL_8125_RSS_FLAG_HASH_UDP_IPV4)
rss_ctrl |= RSS_CTRL_UDP_IPV4_SUPP;
if (rss_flags & RTL_8125_RSS_FLAG_HASH_UDP_IPV6)
rss_ctrl |= RSS_CTRL_UDP_IPV6_SUPP;
RTL_W32(tp, RSS_CTRL_8125, rss_ctrl);
}
return 0;
}
int rtl8125_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
{
struct rtl8125_private *tp = netdev_priv(dev);
int ret = -EOPNOTSUPP;
netif_info(tp, drv, tp->dev, "rss set rxnfc\n");
if (!(dev->features & NETIF_F_RXHASH))
return ret;
switch (cmd->cmd) {
case ETHTOOL_SRXFH:
ret = rtl8125_set_rss_hash_opt(tp, cmd);
break;
default:
break;
}
return ret;
}
static u32 _rtl8125_get_rxfh_key_size(struct rtl8125_private *tp)
{
return sizeof(tp->rss_key);
}
u32 rtl8125_get_rxfh_key_size(struct net_device *dev)
{
struct rtl8125_private *tp = netdev_priv(dev);
netif_info(tp, drv, tp->dev, "rss get key size\n");
if (!(dev->features & NETIF_F_RXHASH))
return 0;
return _rtl8125_get_rxfh_key_size(tp);
}
u32 rtl8125_rss_indir_size(struct net_device *dev)
{
struct rtl8125_private *tp = netdev_priv(dev);
netif_info(tp, drv, tp->dev, "rss get indir tbl size\n");
if (!(dev->features & NETIF_F_RXHASH))
return 0;
return rtl8125_rss_indir_tbl_entries(tp);
}
static void rtl8125_get_reta(struct rtl8125_private *tp, u32 *indir)
{
int i, reta_size = rtl8125_rss_indir_tbl_entries(tp);
for (i = 0; i < reta_size; i++)
indir[i] = tp->rss_indir_tbl[i];
}
int rtl8125_get_rxfh(struct net_device *dev, u32 *indir, u8 *key,
u8 *hfunc)
{
struct rtl8125_private *tp = netdev_priv(dev);
netif_info(tp, drv, tp->dev, "rss get rxfh\n");
if (!(dev->features & NETIF_F_RXHASH))
return -EOPNOTSUPP;
if (hfunc)
*hfunc = ETH_RSS_HASH_TOP;
if (indir)
rtl8125_get_reta(tp, indir);
if (key)
memcpy(key, tp->rss_key, rtl8125_get_rxfh_key_size(dev));
return 0;
}
#define RSS_KEY_8125 0x4600
#define RSS_INDIRECTION_TBL_8125_V2 0x4700
static u32 rtl8125_rss_key_reg(struct rtl8125_private *tp)
{
return RSS_KEY_8125;
}
static u32 rtl8125_rss_indir_tbl_reg(struct rtl8125_private *tp)
{
return RSS_INDIRECTION_TBL_8125_V2;
}
static void rtl8125_store_reta(struct rtl8125_private *tp)
{
u16 indir_tbl_reg = rtl8125_rss_indir_tbl_reg(tp);
u32 i, reta_entries = rtl8125_rss_indir_tbl_entries(tp);
u32 reta = 0;
u8 *indir_tbl = tp->rss_indir_tbl;
/* Write redirection table to HW */
for (i = 0; i < reta_entries; i++) {
reta |= indir_tbl[i] << (i & 0x3) * 8;
if ((i & 3) == 3) {
RTL_W32(tp, indir_tbl_reg, reta);
indir_tbl_reg += 4;
reta = 0;
}
}
}
static void rtl8125_store_rss_key(struct rtl8125_private *tp)
{
const u16 rss_key_reg = rtl8125_rss_key_reg(tp);
u32 i, rss_key_size = _rtl8125_get_rxfh_key_size(tp);
u32 *rss_key = (u32*)tp->rss_key;
/* Write redirection table to HW */
for (i = 0; i < rss_key_size; i+=4)
RTL_W32(tp, rss_key_reg + i, *rss_key++);
}
int rtl8125_set_rxfh(struct net_device *dev, const u32 *indir,
const u8 *key, const u8 hfunc)
{
struct rtl8125_private *tp = netdev_priv(dev);
int i;
u32 reta_entries = rtl8125_rss_indir_tbl_entries(tp);
netif_info(tp, drv, tp->dev, "rss set rxfh\n");
/* We require at least one supported parameter to be changed and no
* change in any of the unsupported parameters
*/
if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP)
return -EOPNOTSUPP;
/* Fill out the redirection table */
if (indir) {
int max_queues = tp->num_rx_rings;
/* Verify user input. */
for (i = 0; i < reta_entries; i++)
if (indir[i] >= max_queues)
return -EINVAL;
for (i = 0; i < reta_entries; i++)
tp->rss_indir_tbl[i] = indir[i];
}
/* Fill out the rss hash key */
if (key)
memcpy(tp->rss_key, key, rtl8125_get_rxfh_key_size(dev));
rtl8125_store_reta(tp);
rtl8125_store_rss_key(tp);
return 0;
}
static u32 rtl8125_get_rx_desc_hash(struct rtl8125_private *tp,
struct RxDescV3 *descv3)
{
return le32_to_cpu(descv3->RxDescNormalDDWord2.RSSResult);
}
#define RXS_8125B_RSS_UDP BIT(9)
#define RXS_8125_RSS_IPV4 BIT(10)
#define RXS_8125_RSS_IPV6 BIT(12)
#define RXS_8125_RSS_TCP BIT(13)
#define RTL8125_RXS_RSS_L3_TYPE_MASK (RXS_8125_RSS_IPV4 | RXS_8125_RSS_IPV6)
#define RTL8125_RXS_RSS_L4_TYPE_MASK (RXS_8125_RSS_TCP | RXS_8125B_RSS_UDP)
void rtl8125_rx_hash(struct rtl8125_private *tp,
struct RxDescV3 *descv3,
struct sk_buff *skb)
{
u16 rss_header_info;
if (!(tp->dev->features & NETIF_F_RXHASH))
return;
rss_header_info = le16_to_cpu(descv3->RxDescNormalDDWord2.HeaderInfo);
if (!(rss_header_info & RTL8125_RXS_RSS_L3_TYPE_MASK))
return;
skb_set_hash(skb, rtl8125_get_rx_desc_hash(tp, descv3),
(RTL8125_RXS_RSS_L4_TYPE_MASK & rss_header_info) ?
PKT_HASH_TYPE_L4 : PKT_HASH_TYPE_L3);
}
void rtl8125_disable_rss(struct rtl8125_private *tp)
{
RTL_W32(tp, RSS_CTRL_8125, 0x00);
}
void _rtl8125_config_rss(struct rtl8125_private *tp)
{
_rtl8125_set_rss_hash_opt(tp);
rtl8125_store_reta(tp);
rtl8125_store_rss_key(tp);
}
void rtl8125_config_rss(struct rtl8125_private *tp)
{
if (!tp->EnableRss) {
rtl8125_disable_rss(tp);
return;
}
_rtl8125_config_rss(tp);
}
void rtl8125_init_rss(struct rtl8125_private *tp)
{
int i;
for (i = 0; i < rtl8125_rss_indir_tbl_entries(tp); i++)
tp->rss_indir_tbl[i] = ethtool_rxfh_indir_default(i, tp->num_rx_rings);
netdev_rss_key_fill(tp->rss_key, RTL8125_RSS_KEY_SIZE);
}

View file

@ -1,66 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#ifndef _LINUX_rtl8125_RSS_H
#define _LINUX_rtl8125_RSS_H
#include <linux/netdevice.h>
#include <linux/types.h>
enum rtl8125_rss_flag {
RTL_8125_RSS_FLAG_HASH_UDP_IPV4 = (1 << 0),
RTL_8125_RSS_FLAG_HASH_UDP_IPV6 = (1 << 1),
};
struct rtl8125_private;
int rtl8125_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
u32 *rule_locs);
int rtl8125_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd);
u32 rtl8125_get_rxfh_key_size(struct net_device *netdev);
u32 rtl8125_rss_indir_size(struct net_device *netdev);
int rtl8125_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
u8 *hfunc);
int rtl8125_set_rxfh(struct net_device *netdev, const u32 *indir,
const u8 *key, const u8 hfunc);
void rtl8125_rx_hash(struct rtl8125_private *tp,
struct RxDescV3 *descv3,
struct sk_buff *skb);
void _rtl8125_config_rss(struct rtl8125_private *tp);
void rtl8125_config_rss(struct rtl8125_private *tp);
void rtl8125_init_rss(struct rtl8125_private *tp);
u32 rtl8125_rss_indir_tbl_entries(struct rtl8125_private *tp);
void rtl8125_disable_rss(struct rtl8125_private *tp);
#endif /* _LINUX_rtl8125_RSS_H */

View file

@ -1,289 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#include <linux/init.h>
#include <linux/module.h>
#include <linux/version.h>
#include <linux/ethtool.h>
#include <linux/netdevice.h>
#include <linux/delay.h>
#include <asm/io.h>
#include "r8125.h"
#include "rtl_eeprom.h"
//-------------------------------------------------------------------
//rtl8125_eeprom_type():
// tell the eeprom type
//return value:
// 0: the eeprom type is 93C46
// 1: the eeprom type is 93C56 or 93C66
//-------------------------------------------------------------------
void rtl8125_eeprom_type(struct rtl8125_private *tp)
{
u16 magic = 0;
if (tp->mcfg == CFG_METHOD_DEFAULT)
goto out_no_eeprom;
if(RTL_R8(tp, 0xD2)&0x04) {
//not support
//tp->eeprom_type = EEPROM_TWSI;
//tp->eeprom_len = 256;
goto out_no_eeprom;
} else if(RTL_R32(tp, RxConfig) & RxCfg_9356SEL) {
tp->eeprom_type = EEPROM_TYPE_93C56;
tp->eeprom_len = 256;
} else {
tp->eeprom_type = EEPROM_TYPE_93C46;
tp->eeprom_len = 128;
}
magic = rtl8125_eeprom_read_sc(tp, 0);
out_no_eeprom:
if ((magic != 0x8129) && (magic != 0x8128)) {
tp->eeprom_type = EEPROM_TYPE_NONE;
tp->eeprom_len = 0;
}
}
void rtl8125_eeprom_cleanup(struct rtl8125_private *tp)
{
u8 x;
x = RTL_R8(tp, Cfg9346);
x &= ~(Cfg9346_EEDI | Cfg9346_EECS);
RTL_W8(tp, Cfg9346, x);
rtl8125_raise_clock(tp, &x);
rtl8125_lower_clock(tp, &x);
}
int rtl8125_eeprom_cmd_done(struct rtl8125_private *tp)
{
u8 x;
int i;
rtl8125_stand_by(tp);
for (i = 0; i < 50000; i++) {
x = RTL_R8(tp, Cfg9346);
if (x & Cfg9346_EEDO) {
udelay(RTL_CLOCK_RATE * 2 * 3);
return 0;
}
udelay(1);
}
return -1;
}
//-------------------------------------------------------------------
//rtl8125_eeprom_read_sc():
// read one word from eeprom
//-------------------------------------------------------------------
u16 rtl8125_eeprom_read_sc(struct rtl8125_private *tp, u16 reg)
{
int addr_sz = 6;
u8 x;
u16 data;
if(tp->eeprom_type == EEPROM_TYPE_NONE) {
return -1;
}
if (tp->eeprom_type==EEPROM_TYPE_93C46)
addr_sz = 6;
else if (tp->eeprom_type==EEPROM_TYPE_93C56)
addr_sz = 8;
x = Cfg9346_EEM1 | Cfg9346_EECS;
RTL_W8(tp, Cfg9346, x);
rtl8125_shift_out_bits(tp, RTL_EEPROM_READ_OPCODE, 3);
rtl8125_shift_out_bits(tp, reg, addr_sz);
data = rtl8125_shift_in_bits(tp);
rtl8125_eeprom_cleanup(tp);
RTL_W8(tp, Cfg9346, 0);
return data;
}
//-------------------------------------------------------------------
//rtl8125_eeprom_write_sc():
// write one word to a specific address in the eeprom
//-------------------------------------------------------------------
void rtl8125_eeprom_write_sc(struct rtl8125_private *tp, u16 reg, u16 data)
{
u8 x;
int addr_sz = 6;
int w_dummy_addr = 4;
if(tp->eeprom_type == EEPROM_TYPE_NONE) {
return ;
}
if (tp->eeprom_type==EEPROM_TYPE_93C46) {
addr_sz = 6;
w_dummy_addr = 4;
} else if (tp->eeprom_type==EEPROM_TYPE_93C56) {
addr_sz = 8;
w_dummy_addr = 6;
}
x = Cfg9346_EEM1 | Cfg9346_EECS;
RTL_W8(tp, Cfg9346, x);
rtl8125_shift_out_bits(tp, RTL_EEPROM_EWEN_OPCODE, 5);
rtl8125_shift_out_bits(tp, reg, w_dummy_addr);
rtl8125_stand_by(tp);
rtl8125_shift_out_bits(tp, RTL_EEPROM_ERASE_OPCODE, 3);
rtl8125_shift_out_bits(tp, reg, addr_sz);
if (rtl8125_eeprom_cmd_done(tp) < 0) {
return;
}
rtl8125_stand_by(tp);
rtl8125_shift_out_bits(tp, RTL_EEPROM_WRITE_OPCODE, 3);
rtl8125_shift_out_bits(tp, reg, addr_sz);
rtl8125_shift_out_bits(tp, data, 16);
if (rtl8125_eeprom_cmd_done(tp) < 0) {
return;
}
rtl8125_stand_by(tp);
rtl8125_shift_out_bits(tp, RTL_EEPROM_EWDS_OPCODE, 5);
rtl8125_shift_out_bits(tp, reg, w_dummy_addr);
rtl8125_eeprom_cleanup(tp);
RTL_W8(tp, Cfg9346, 0);
}
void rtl8125_raise_clock(struct rtl8125_private *tp, u8 *x)
{
*x = *x | Cfg9346_EESK;
RTL_W8(tp, Cfg9346, *x);
udelay(RTL_CLOCK_RATE);
}
void rtl8125_lower_clock(struct rtl8125_private *tp, u8 *x)
{
*x = *x & ~Cfg9346_EESK;
RTL_W8(tp, Cfg9346, *x);
udelay(RTL_CLOCK_RATE);
}
void rtl8125_shift_out_bits(struct rtl8125_private *tp, int data, int count)
{
u8 x;
int mask;
mask = 0x01 << (count - 1);
x = RTL_R8(tp, Cfg9346);
x &= ~(Cfg9346_EEDI | Cfg9346_EEDO);
do {
if (data & mask)
x |= Cfg9346_EEDI;
else
x &= ~Cfg9346_EEDI;
RTL_W8(tp, Cfg9346, x);
udelay(RTL_CLOCK_RATE);
rtl8125_raise_clock(tp, &x);
rtl8125_lower_clock(tp, &x);
mask = mask >> 1;
} while(mask);
x &= ~Cfg9346_EEDI;
RTL_W8(tp, Cfg9346, x);
}
u16 rtl8125_shift_in_bits(struct rtl8125_private *tp)
{
u8 x;
u16 d, i;
x = RTL_R8(tp, Cfg9346);
x &= ~(Cfg9346_EEDI | Cfg9346_EEDO);
d = 0;
for (i = 0; i < 16; i++) {
d = d << 1;
rtl8125_raise_clock(tp, &x);
x = RTL_R8(tp, Cfg9346);
x &= ~Cfg9346_EEDI;
if (x & Cfg9346_EEDO)
d |= 1;
rtl8125_lower_clock(tp, &x);
}
return d;
}
void rtl8125_stand_by(struct rtl8125_private *tp)
{
u8 x;
x = RTL_R8(tp, Cfg9346);
x &= ~(Cfg9346_EECS | Cfg9346_EESK);
RTL_W8(tp, Cfg9346, x);
udelay(RTL_CLOCK_RATE);
x |= Cfg9346_EECS;
RTL_W8(tp, Cfg9346, x);
}
void rtl8125_set_eeprom_sel_low(struct rtl8125_private *tp)
{
RTL_W8(tp, Cfg9346, Cfg9346_EEM1);
RTL_W8(tp, Cfg9346, Cfg9346_EEM1 | Cfg9346_EESK);
udelay(20);
RTL_W8(tp, Cfg9346, Cfg9346_EEM1);
}

View file

@ -1,53 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
//EEPROM opcodes
#define RTL_EEPROM_READ_OPCODE 06
#define RTL_EEPROM_WRITE_OPCODE 05
#define RTL_EEPROM_ERASE_OPCODE 07
#define RTL_EEPROM_EWEN_OPCODE 19
#define RTL_EEPROM_EWDS_OPCODE 16
#define RTL_CLOCK_RATE 3
void rtl8125_eeprom_type(struct rtl8125_private *tp);
void rtl8125_eeprom_cleanup(struct rtl8125_private *tp);
u16 rtl8125_eeprom_read_sc(struct rtl8125_private *tp, u16 reg);
void rtl8125_eeprom_write_sc(struct rtl8125_private *tp, u16 reg, u16 data);
void rtl8125_shift_out_bits(struct rtl8125_private *tp, int data, int count);
u16 rtl8125_shift_in_bits(struct rtl8125_private *tp);
void rtl8125_raise_clock(struct rtl8125_private *tp, u8 *x);
void rtl8125_lower_clock(struct rtl8125_private *tp, u8 *x);
void rtl8125_stand_by(struct rtl8125_private *tp);
void rtl8125_set_eeprom_sel_low(struct rtl8125_private *tp);

View file

@ -1,359 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#include <linux/module.h>
#include <linux/version.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/delay.h>
#include <linux/in.h>
#include <linux/ethtool.h>
#include <asm/uaccess.h>
#include "r8125.h"
#include "rtl_eeprom.h"
#include "rtltool.h"
int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr)
{
struct rtltool_cmd my_cmd;
unsigned long flags;
int ret;
if (copy_from_user(&my_cmd, ifr->ifr_data, sizeof(my_cmd)))
return -EFAULT;
ret = 0;
switch (my_cmd.cmd) {
case RTLTOOL_READ_MAC:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (my_cmd.len==1)
my_cmd.data = readb(tp->mmio_addr+my_cmd.offset);
else if (my_cmd.len==2)
my_cmd.data = readw(tp->mmio_addr+(my_cmd.offset&~1));
else if (my_cmd.len==4)
my_cmd.data = readl(tp->mmio_addr+(my_cmd.offset&~3));
else {
ret = -EOPNOTSUPP;
break;
}
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTLTOOL_WRITE_MAC:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (my_cmd.len==1)
writeb(my_cmd.data, tp->mmio_addr+my_cmd.offset);
else if (my_cmd.len==2)
writew(my_cmd.data, tp->mmio_addr+(my_cmd.offset&~1));
else if (my_cmd.len==4)
writel(my_cmd.data, tp->mmio_addr+(my_cmd.offset&~3));
else {
ret = -EOPNOTSUPP;
break;
}
break;
case RTLTOOL_READ_PHY:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
my_cmd.data = rtl8125_mdio_prot_read(tp, my_cmd.offset);
spin_unlock_irqrestore(&tp->lock, flags);
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTLTOOL_WRITE_PHY:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_mdio_prot_write(tp, my_cmd.offset, my_cmd.data);
spin_unlock_irqrestore(&tp->lock, flags);
break;
case RTLTOOL_READ_EPHY:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
my_cmd.data = rtl8125_ephy_read(tp, my_cmd.offset);
spin_unlock_irqrestore(&tp->lock, flags);
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTLTOOL_WRITE_EPHY:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_ephy_write(tp, my_cmd.offset, my_cmd.data);
spin_unlock_irqrestore(&tp->lock, flags);
break;
case RTLTOOL_READ_ERI:
my_cmd.data = 0;
if (my_cmd.len==1 || my_cmd.len==2 || my_cmd.len==4) {
spin_lock_irqsave(&tp->lock, flags);
my_cmd.data = rtl8125_eri_read(tp, my_cmd.offset, my_cmd.len, ERIAR_ExGMAC);
spin_unlock_irqrestore(&tp->lock, flags);
} else {
ret = -EOPNOTSUPP;
break;
}
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTLTOOL_WRITE_ERI:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (my_cmd.len==1 || my_cmd.len==2 || my_cmd.len==4) {
spin_lock_irqsave(&tp->lock, flags);
rtl8125_eri_write(tp, my_cmd.offset, my_cmd.len, my_cmd.data, ERIAR_ExGMAC);
spin_unlock_irqrestore(&tp->lock, flags);
} else {
ret = -EOPNOTSUPP;
break;
}
break;
case RTLTOOL_READ_PCI:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
my_cmd.data = 0;
if (my_cmd.len==1)
pci_read_config_byte(tp->pci_dev, my_cmd.offset,
(u8 *)&my_cmd.data);
else if (my_cmd.len==2)
pci_read_config_word(tp->pci_dev, my_cmd.offset,
(u16 *)&my_cmd.data);
else if (my_cmd.len==4)
pci_read_config_dword(tp->pci_dev, my_cmd.offset,
&my_cmd.data);
else {
ret = -EOPNOTSUPP;
break;
}
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTLTOOL_WRITE_PCI:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (my_cmd.len==1)
pci_write_config_byte(tp->pci_dev, my_cmd.offset,
my_cmd.data);
else if (my_cmd.len==2)
pci_write_config_word(tp->pci_dev, my_cmd.offset,
my_cmd.data);
else if (my_cmd.len==4)
pci_write_config_dword(tp->pci_dev, my_cmd.offset,
my_cmd.data);
else {
ret = -EOPNOTSUPP;
break;
}
break;
case RTLTOOL_READ_EEPROM:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
my_cmd.data = rtl8125_eeprom_read_sc(tp, my_cmd.offset);
spin_unlock_irqrestore(&tp->lock, flags);
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTLTOOL_WRITE_EEPROM:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_eeprom_write_sc(tp, my_cmd.offset, my_cmd.data);
spin_unlock_irqrestore(&tp->lock, flags);
break;
case RTL_READ_OOB_MAC:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_oob_mutex_lock(tp);
my_cmd.data = rtl8125_ocp_read(tp, my_cmd.offset, 4);
rtl8125_oob_mutex_unlock(tp);
spin_unlock_irqrestore(&tp->lock, flags);
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTL_WRITE_OOB_MAC:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (my_cmd.len == 0 || my_cmd.len > 4)
return -EOPNOTSUPP;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_oob_mutex_lock(tp);
rtl8125_ocp_write(tp, my_cmd.offset, my_cmd.len, my_cmd.data);
rtl8125_oob_mutex_unlock(tp);
spin_unlock_irqrestore(&tp->lock, flags);
break;
case RTL_ENABLE_PCI_DIAG:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
tp->rtk_enable_diag = 1;
spin_unlock_irqrestore(&tp->lock, flags);
dprintk("enable rtk diag\n");
break;
case RTL_DISABLE_PCI_DIAG:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
tp->rtk_enable_diag = 0;
spin_unlock_irqrestore(&tp->lock, flags);
dprintk("disable rtk diag\n");
break;
case RTL_READ_MAC_OCP:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if (my_cmd.offset % 2)
return -EOPNOTSUPP;
spin_lock_irqsave(&tp->lock, flags);
my_cmd.data = rtl8125_mac_ocp_read(tp, my_cmd.offset);
spin_unlock_irqrestore(&tp->lock, flags);
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTL_WRITE_MAC_OCP:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
if ((my_cmd.offset % 2) || (my_cmd.len != 2))
return -EOPNOTSUPP;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_mac_ocp_write(tp, my_cmd.offset, (u16)my_cmd.data);
spin_unlock_irqrestore(&tp->lock, flags);
break;
case RTL_DIRECT_READ_PHY_OCP:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
my_cmd.data = rtl8125_mdio_prot_direct_read_phy_ocp(tp, my_cmd.offset);
spin_unlock_irqrestore(&tp->lock, flags);
if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) {
ret = -EFAULT;
break;
}
break;
case RTL_DIRECT_WRITE_PHY_OCP:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
spin_lock_irqsave(&tp->lock, flags);
rtl8125_mdio_prot_direct_write_phy_ocp(tp, my_cmd.offset, my_cmd.data);
spin_unlock_irqrestore(&tp->lock, flags);
break;
default:
ret = -EOPNOTSUPP;
break;
}
return ret;
}

View file

@ -1,86 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
################################################################################
#
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
# controllers with PCI-Express interface.
#
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
# Author:
# Realtek NIC software team <nicfae@realtek.com>
# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan
#
################################################################################
*/
/************************************************************************************
* This product is covered by one or more of the following patents:
* US6,570,884, US6,115,776, and US6,327,625.
***********************************************************************************/
#ifndef _LINUX_RTLTOOL_H
#define _LINUX_RTLTOOL_H
#define SIOCRTLTOOL SIOCDEVPRIVATE+1
enum rtl_cmd {
RTLTOOL_READ_MAC=0,
RTLTOOL_WRITE_MAC,
RTLTOOL_READ_PHY,
RTLTOOL_WRITE_PHY,
RTLTOOL_READ_EPHY,
RTLTOOL_WRITE_EPHY,
RTLTOOL_READ_ERI,
RTLTOOL_WRITE_ERI,
RTLTOOL_READ_PCI,
RTLTOOL_WRITE_PCI,
RTLTOOL_READ_EEPROM,
RTLTOOL_WRITE_EEPROM,
RTL_READ_OOB_MAC,
RTL_WRITE_OOB_MAC,
RTL_ENABLE_PCI_DIAG,
RTL_DISABLE_PCI_DIAG,
RTL_READ_MAC_OCP,
RTL_WRITE_MAC_OCP,
RTL_DIRECT_READ_PHY_OCP,
RTL_DIRECT_WRITE_PHY_OCP,
RTLTOOL_INVALID
};
struct rtltool_cmd {
__u32 cmd;
__u32 offset;
__u32 len;
__u32 data;
};
enum mode_access {
MODE_NONE=0,
MODE_READ,
MODE_WRITE
};
#ifdef __KERNEL__
int rtl8125_tool_ioctl(struct rtl8125_private *tp, struct ifreq *ifr);
#endif
#endif /* _LINUX_RTLTOOL_H */