luci-0.8: merge r3809-r3822
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 27 Nov 2008 14:26:37 +0000 (14:26 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 27 Nov 2008 14:26:37 +0000 (14:26 +0000)
23 files changed:
applications/luci-olsr/luasrc/i18n/olsr.de.lua
applications/luci-olsr/luasrc/i18n/olsr.de.xml
applications/luci-olsr/luasrc/i18n/olsr.en.lua
applications/luci-olsr/luasrc/i18n/olsr.en.xml
applications/luci-olsr/luasrc/model/cbi/olsr/olsrdhna.lua
applications/luci-statistics/luasrc/statistics/rrdtool.lua
contrib/package/olsrd-luci/Makefile
contrib/package/olsrd-luci/files/etc/init.d/olsrd
contrib/package/olsrd-luci/patches/200-olsrd-dyngw-hna.patch [deleted file]
i18n/english/luasrc/i18n/admin-core.en.lua
i18n/english/luasrc/i18n/admin-core.en.xml
i18n/french/luasrc/i18n/admin-core.fr.lua
i18n/french/luasrc/i18n/admin-core.fr.xml
i18n/german/luasrc/i18n/admin-core.de.lua
i18n/german/luasrc/i18n/admin-core.de.xml
i18n/portuguese_brazilian/luasrc/i18n/admin-core.pt-br.lua
i18n/portuguese_brazilian/luasrc/i18n/admin-core.pt-br.xml
i18n/russian/luasrc/i18n/admin-core.ru.lua
i18n/russian/luasrc/i18n/admin-core.ru.xml
libs/core/luasrc/ip.lua
libs/sys/luasrc/sys.lua
modules/admin-core/root/lib/uci/schema/default/network
modules/admin-full/luasrc/model/cbi/admin_network/routes.lua

index dc0cfaf..4ebcf0e 100644 (file)
@@ -75,8 +75,8 @@ olsrd_hna6 = 'IPv6 HNA-Ankündigungen'
 olsrd_hna6_desc = 'Hna6-Entries ermöglichen die Ankündigung von lokalen IPv6 Host- und Netz-Routen im Mesh-Netzwerk'
 olsrd_hna6_netaddr = 'Netzwerk-Adresse'
 olsrd_hna6_netaddr_desc = 'IPv6 Adresse'
-olsrd_hna6_netmask = 'Netzmaske'
-olsrd_hna6_netmask_desc = 'IPv6 Adresse'
+olsrd_hna6_prefix = 'Prefix'
+olsrd_hna6_prefix_desc = 'IPv6 Prefix'
 olsrd_loadplugin = 'Pluginkonfiguration'
 olsrd_loadplugin_ignore = 'Plugin aktivieren'
 olsrd_loadplugin_library = 'Bibliothek'
index 3d9763d..3d8b5a2 100644 (file)
 <i18n:msg xml:id="olsrd_hna6_desc">Hna6-Entries ermöglichen die Ankündigung von lokalen IPv6 Host- und Netz-Routen im Mesh-Netzwerk</i18n:msg>
 <i18n:msg xml:id="olsrd_hna6_netaddr">Netzwerk-Adresse</i18n:msg>
 <i18n:msg xml:id="olsrd_hna6_netaddr_desc">IPv6 Adresse</i18n:msg>
-<i18n:msg xml:id="olsrd_hna6_netmask">Netzmaske</i18n:msg>
-<i18n:msg xml:id="olsrd_hna6_netmask_desc">IPv6 Adresse</i18n:msg>
+<i18n:msg xml:id="olsrd_hna6_prefix">Prefix</i18n:msg>
+<i18n:msg xml:id="olsrd_hna6_prefix_desc">IPv6 Prefix</i18n:msg>
 
 
 <!-- * PLUGIN SETUP * -->
index fbba765..b8621d3 100644 (file)
@@ -75,8 +75,8 @@ olsrd_hna6 = 'IPv6 HNA announcements'
 olsrd_hna6_desc = 'Hna6 entries allow you to propagate local IPv6 host- and network-routes into the mesh network'
 olsrd_hna6_netaddr = 'Network address'
 olsrd_hna6_netaddr_desc = 'IPv6 address'
-olsrd_hna6_netmask = 'Netmask'
-olsrd_hna6_netmask_desc = 'IPv6 address'
+olsrd_hna6_prefix = 'Prefix'
+olsrd_hna6_prefix_desc = 'IPv6 prefix'
 olsrd_loadplugin = 'Plugin configuration'
 olsrd_loadplugin_ignore = 'Enable plugin'
 olsrd_loadplugin_library = 'Library'
index 546b7a8..4dc7d5c 100644 (file)
 <i18n:msg xml:id="olsrd_hna6_desc">Hna6 entries allow you to propagate local IPv6 host- and network-routes into the mesh network</i18n:msg>
 <i18n:msg xml:id="olsrd_hna6_netaddr">Network address</i18n:msg>
 <i18n:msg xml:id="olsrd_hna6_netaddr_desc">IPv6 address</i18n:msg>
-<i18n:msg xml:id="olsrd_hna6_netmask">Netmask</i18n:msg>
-<i18n:msg xml:id="olsrd_hna6_netmask_desc">IPv6 address</i18n:msg>
+<i18n:msg xml:id="olsrd_hna6_prefix">Prefix</i18n:msg>
+<i18n:msg xml:id="olsrd_hna6_prefix_desc">IPv6 prefix</i18n:msg>
 
 
 <!-- * PLUGIN SETUP * -->
index 632a4d4..ea2f88d 100644 (file)
@@ -14,14 +14,23 @@ $Id$
 
 mh = Map("olsrd", translate("olsrd_hna", "OLSR - HNA-Ankündigungen"))
 
-for i, sect in ipairs({ "Hna4", "Hna6" }) do
-       hna = mh:section(TypedSection, sect)
-       hna.addremove = true
-       hna.anonymous = true
-       hna.template  = "cbi/tblsection"
-
-       net = hna:option(Value, "netaddr")
-       msk = hna:option(Value, "netmask")
-end
+
+hna4 = mh:section(TypedSection, "Hna4")
+hna4.addremove = true
+hna4.anonymous = true
+hna4.template  = "cbi/tblsection"
+
+net4 = hna4:option(Value, "netaddr")
+msk4 = hna4:option(Value, "netmask")
+
+
+hna6 = mh:section(TypedSection, "Hna6")
+hna6.addremove = true
+hna6.anonymous = true
+hna6.template  = "cbi/tblsection"
+
+net6 = hna6:option(Value, "netaddr")
+msk6 = hna6:option(Value, "prefix")
+
 
 return mh
index 23e0170..cf420fe 100644 (file)
@@ -42,7 +42,7 @@ function Graph.__init__( self, timespan, opts )
 
        -- options
        opts.timespan  = timespan       or sections.rrdtool.default_timespan or 900
-       opts.rrasingle = opts.rrasingle or ( sections.collectd_rrdtool.RRASingle ~= "0" )
+       opts.rrasingle = opts.rrasingle or ( sections.collectd_rrdtool.RRASingle == "1" )
        opts.host      = opts.host      or sections.collectd.Hostname        or luci.sys.hostname()
        opts.width     = opts.width     or sections.rrdtool.image_width      or 400
        opts.rrdpath   = opts.rrdpath   or sections.collectd_rrdtool.DataDir or "/tmp/rrd"
index c437dce..8e22a74 100644 (file)
@@ -11,13 +11,19 @@ include $(TOPDIR)/rules.mk
 
 PKG_BASENAME:=olsrd
 PKG_NAME:=$(PKG_BASENAME)-luci
-PKG_VERSION:=0.5.6
-PKG_RELEASE:=4
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_BASENAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_BASENAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://www.olsr.org/releases/0.5
-PKG_MD5SUM:=918a4d43eebb6d62889ecedb941c2029
+PKG_VERSION:=0.5.6-r2+hg1724
+PKG_RELEASE:=1
+
+PKG_HGREV:=cac1df64dcd5
+PKG_SOURCE:=$(PKG_HGREV).tar.gz
+PKG_SOURCE_URL:=http://gredler.at/hg/olsrd-0.5.6/archive
+PKG_MD5SUM:=95af2d8d6075f74d379b752fb8dda3de
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_BASENAME)-0-5-6-$(PKG_HGREV)
+
+#PKG_SOURCE:=$(PKG_BASENAME)-$(PKG_VERSION).tar.bz2
+#PKG_SOURCE_URL:=http://www.olsr.org/releases/0.5
+#PKG_MD5SUM:=64b439cde30f48764f02cdd8766aba40
+#PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_BASENAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
 
index 5192715..9aee7a3 100755 (executable)
@@ -10,7 +10,7 @@ PID=/var/run/olsrd.pid
 OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 IpVersion=4 AllowNoInt:bool=1 Pollrate=0.025 TcRedundancy=2 MprCoverage=3 LinkQualityFishEye=1 LinkQualityWinSize=100 LinkQualityDijkstraLimit=0+9.0 LinkQualityLevel=2 UseHysteresis:bool=0 FIBMetric=flat ClearScreen:bool=1 Willingness=3 LinkQualityAging=0.1 LinkQualityAlgorithm=etx_fpm'
 OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
 OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host:list Net:list2 Ping:list redistribute:list NonOlsrIf:list name:list lat lon latlon_infile HNA:list2 hosts:list2'
-OLSRD_INTERFACE_SCHEMA='ignore:internal interface:internal AutoDetectChanges:bool Ip4Broadcast=255.255.255.255 HelloInterval=2.0 HelloValidityTime=40.0 TcInterval=5.0 TcValidityTime=100.0 MidInterval=18.0 MidValidityTime=324.0 HnaInterval=18.0 HnaValidityTime=108.0'
+OLSRD_INTERFACE_SCHEMA='ignore:internal interface:internal AutoDetectChanges:bool Ip4Broadcast HelloInterval=2.0 HelloValidityTime=40.0 TcInterval=5.0 TcValidityTime=100.0 MidInterval=18.0 MidValidityTime=324.0 HnaInterval=18.0 HnaValidityTime=108.0'
 
 T='    '
 N='
@@ -526,7 +526,7 @@ start() {
                        return 1
                fi
        fi
-       
+
        SYSTEM_HOSTNAME=
        SYSTEM_LAT=
        SYSTEM_LON=
diff --git a/contrib/package/olsrd-luci/patches/200-olsrd-dyngw-hna.patch b/contrib/package/olsrd-luci/patches/200-olsrd-dyngw-hna.patch
deleted file mode 100644 (file)
index 8b4e9c4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -urb olsrd-0.5.6.orig/lib/dyn_gw/src/olsrd_dyn_gw.c olsrd-0.5.6/lib/dyn_gw/src/olsrd_dyn_gw.c
---- olsrd-0.5.6.orig/lib/dyn_gw/src/olsrd_dyn_gw.c     2008-09-16 01:14:44.000000000 +0200
-+++ olsrd-0.5.6/lib/dyn_gw/src/olsrd_dyn_gw.c  2008-09-16 01:26:55.000000000 +0200
-@@ -191,8 +191,8 @@
-     }
-     //printf("GOT: %s(%08x)",inet_ntoa(foo_addr),foo_addr.s_addr);
--    if (inet_pton(olsr_cnf->ip_version, s_netaddr, &temp_netmask) <= 0) {
--        OLSR_PRINTF(0, "Illegal netmask \"%s\"", s_netaddr);
-+    if (inet_pton(olsr_cnf->ip_version, s_mask, &temp_netmask) <= 0) {
-+        OLSR_PRINTF(0, "Illegal netmask \"%s\"", s_mask);
-         return 1;
-     }
index b9d77ce..64729f8 100644 (file)
@@ -169,6 +169,8 @@ a_n_switch = 'Switch'
 a_n_conntrack = 'Active Connections'
 a_n_conntrack_desc = 'This page gives an overview over currently active network connections.'
 a_n_routes = 'Routes'
+a_n_routes4 = 'IPv4 Routes'
+a_n_routes6 = 'IPv6 Routes'
 a_network1 = 'In this area you find all network-related settings.'
 a_network2 = 'On most routers the network switch can be freely configured and splitted up into several <abbr title="Virtual Local Area Network">VLAN</abbr>s.'
 a_network3 = 'Interfaces and <abbr title="Point-to-Point Protocol over Ethernet">PPPoE</abbr> / <abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr>-Settings allow a custom organisation of the network and connections to other networks like the internet.'
@@ -223,8 +225,12 @@ network_interface_maxwait = 'Setup wait time'
 network_interface_maxwait_desc = 'Seconds to wait for the modem to become ready before attempting to connect'
 a_n_r_routes1 = 'Routes specify over which interface and gateway a certain host or network can be reached.'
 a_n_routes_static = 'Static Routes'
+a_n_routes_static4 = 'Static IPv4 Routes'
+a_n_routes_static6 = 'Static IPv6 Routes'
 a_n_routes_kernel4 = 'Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes'
-a_n_r_target1 = 'host-<abbr title="Internet Protocol Address">IP</abbr> or network'
+a_n_routes_kernel6 = 'Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes'
+a_n_r_target1 = 'Host-<abbr title="Internet Protocol Address">IP</abbr> or Network'
+a_n_r_target6 = '<abbr title="Internet Protocol Version 6">IPv6</abbr>-Address or Network (CIDR)'
 a_n_r_netmask1 = 'if target is a network'
 m_n_inet = 'Internet Connection'
 m_n_local = 'Local Network'
index e1f29ff..0bd7177 100644 (file)
 <i18n:msg xml:id="a_n_conntrack">Active Connections</i18n:msg>
 <i18n:msg xml:id="a_n_conntrack_desc">This page gives an overview over currently active network connections.</i18n:msg>
 <i18n:msg xml:id="a_n_routes">Routes</i18n:msg>
+<i18n:msg xml:id="a_n_routes4">IPv4 Routes</i18n:msg>
+<i18n:msg xml:id="a_n_routes6">IPv6 Routes</i18n:msg>
 <i18n:msg xml:id="a_network1">In this area you find all network-related settings.</i18n:msg>
 <i18n:msg xml:id="a_network2">On most routers the network switch can be freely configured and splitted up into several <abbr title="Virtual Local Area Network">VLAN</abbr>s.</i18n:msg>
 <i18n:msg xml:id="a_network3">Interfaces and <abbr title="Point-to-Point Protocol over Ethernet">PPPoE</abbr> / <abbr title="Point-to-Point Tunneling Protocol">PPTP</abbr>-Settings allow a custom organisation of the network and connections to other networks like the internet.</i18n:msg>
 <i18n:msg xml:id="network_interface_maxwait_desc">Seconds to wait for the modem to become ready before attempting to connect</i18n:msg>
 <i18n:msg xml:id="a_n_r_routes1">Routes specify over which interface and gateway a certain host or network can be reached.</i18n:msg>
 <i18n:msg xml:id="a_n_routes_static">Static Routes</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static4">Static IPv4 Routes</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static6">Static IPv6 Routes</i18n:msg>
 <i18n:msg xml:id="a_n_routes_kernel4">Active <abbr title="Internet Protocol Version 4">IPv4</abbr>-Routes</i18n:msg>
-<i18n:msg xml:id="a_n_r_target1">host-<abbr title="Internet Protocol Address">IP</abbr> or network</i18n:msg>
+<i18n:msg xml:id="a_n_routes_kernel6">Active <abbr title="Internet Protocol Version 6">IPv6</abbr>-Routes</i18n:msg>
+<i18n:msg xml:id="a_n_r_target1">Host-<abbr title="Internet Protocol Address">IP</abbr> or Network</i18n:msg>
+<i18n:msg xml:id="a_n_r_target6"><abbr title="Internet Protocol Version 6">IPv6</abbr>-Address or Network (CIDR)</i18n:msg>
 <i18n:msg xml:id="a_n_r_netmask1">if target is a network</i18n:msg>
 <i18n:msg xml:id="m_n_inet">Internet Connection</i18n:msg>
 <i18n:msg xml:id="m_n_local">Local Network</i18n:msg>
index c3f8d3a..93dfda8 100644 (file)
@@ -169,6 +169,8 @@ a_n_switch = 'Switch'
 a_n_conntrack = 'Connexions Actives'
 a_n_conntrack_desc = 'Cette page donne une vue d&#39;ensemble des connexions réseaux actuellement actives.'
 a_n_routes = 'Routes'
+a_n_routes4 = 'IPv4 Routes'
+a_n_routes6 = 'IPv6 Routes'
 a_network1 = 'Dans cette section vous trouverez tous les réglages relatifs au réseau.'
 a_network2 = 'Sur la plupart des routeurs, les ports des switchs peuvent être configurés et séparés en plusieurs VLANs.'
 a_network3 = 'Les réglages des interfaces et du PPPoE / PPTP vous permettent une configuration personalisée du réseau.'
@@ -223,8 +225,12 @@ network_interface_maxwait = 'Délai d&#39;initialisation'
 network_interface_maxwait_desc = 'Secondes à attendre pour que le modem soit prêt avant d&#39;essayer de se connecter'
 a_n_r_routes1 = 'Avec les routes statiques vous pouvez spécifier à travers quelle interface ou passerelle un réseau peut être contacté.'
 a_n_routes_static = 'Routes statiques'
+a_n_routes_static4 = 'Routes IPv4 statiques'
+a_n_routes_static6 = 'Routes IPv6 statiques'
 a_n_routes_kernel4 = 'Routes <abbr title="Internet Protocol Version 4">IPv4</abbr> actives'
+a_n_routes_kernel6 = 'Routes <abbr title="Internet Protocol Version 6">IPv6</abbr> actives'
 a_n_r_target1 = 'adresse IP ou réseau'
+a_n_r_target6 = 'adresse IPv6 ou réseau'
 a_n_r_netmask1 = 'si la destination est un réseau'
 m_n_inet = 'Connexion Internet'
 m_n_local = 'Réseau Local'
index 598780b..d321203 100644 (file)
 <i18n:msg xml:id="a_n_conntrack">Connexions Actives</i18n:msg>
 <i18n:msg xml:id="a_n_conntrack_desc">Cette page donne une vue d'ensemble des connexions réseaux actuellement actives.</i18n:msg>
 <i18n:msg xml:id="a_n_routes">Routes</i18n:msg>
+<i18n:msg xml:id="a_n_routes4">IPv4 Routes</i18n:msg>
+<i18n:msg xml:id="a_n_routes6">IPv6 Routes</i18n:msg>
 <i18n:msg xml:id="a_network1">Dans cette section vous trouverez tous les réglages relatifs au réseau.</i18n:msg>
 <i18n:msg xml:id="a_network2">Sur la plupart des routeurs, les ports des switchs peuvent être configurés et séparés en plusieurs VLANs.</i18n:msg>
 <i18n:msg xml:id="a_network3">Les réglages des interfaces et du PPPoE / PPTP vous permettent une configuration personalisée du réseau.</i18n:msg>
 <i18n:msg xml:id="network_interface_maxwait_desc">Secondes à attendre pour que le modem soit prêt avant d'essayer de se connecter</i18n:msg>
 <i18n:msg xml:id="a_n_r_routes1">Avec les routes statiques vous pouvez spécifier à travers quelle interface ou passerelle un réseau peut être contacté.</i18n:msg>
 <i18n:msg xml:id="a_n_routes_static">Routes statiques</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static4">Routes IPv4 statiques</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static6">Routes IPv6 statiques</i18n:msg>
 <i18n:msg xml:id="a_n_routes_kernel4">Routes <abbr title="Internet Protocol Version 4">IPv4</abbr> actives</i18n:msg>
+<i18n:msg xml:id="a_n_routes_kernel6">Routes <abbr title="Internet Protocol Version 6">IPv6</abbr> actives</i18n:msg>
 <i18n:msg xml:id="a_n_r_target1">adresse IP ou réseau</i18n:msg>
+<i18n:msg xml:id="a_n_r_target6">adresse IPv6 ou réseau</i18n:msg>
 <i18n:msg xml:id="a_n_r_netmask1">si la destination est un réseau</i18n:msg>
 <i18n:msg xml:id="m_n_inet">Connexion Internet</i18n:msg>
 <i18n:msg xml:id="m_n_local">Réseau Local</i18n:msg>
index 06451b4..a5280cc 100644 (file)
@@ -19,10 +19,16 @@ a_n_ptp = 'Punkt-zu-Punkt Verbindungen'
 a_n_ptp1 = 'Punkt-zu-Punkt Verbindungen über PPPoE oder PPTP werden häufig dazu verwendet, um über DSL o.ä. Techniken eine Verbindung zum Internetgateway eines Internetzugangsanbieters aufzubauen.'
 a_n_r_netmask1 = 'falls Ziel ein Netzwerk ist'
 a_n_r_target1 = 'Host-IP oder Netzwerk'
+a_n_r_target6 = 'IPv6 Host- oder Netzwerk-Addresse (CIDR)'
 a_n_routes = 'Routen'
+a_n_routes4 = 'IPv4 Routen'
+a_n_routes6 = 'IPv6 Routen'
 a_n_routes1 = 'Routen geben an, über welche Schnittstelle und welches Gateway ein bestimmter Host oder ein bestimmtes Netzwerk erreicht werden kann.'
 a_n_routes_static = 'Statische Routen'
+a_n_routes_static4 = 'Statische IPv4 Routen'
+a_n_routes_static6 = 'Statische IPv6 Routen'
 a_n_routes_kernel4 = 'Aktive IPv4-Routen'
+a_n_routes_kernel6 = 'Aktive IPv6-Routen'
 a_n_switch = 'Switch'
 a_n_switch1 = 'Die Netzwerkschnittstellen am Router können zu verschienden VLANs zusammengefasst werden, in denen Geräte miteinander direkt kommunizieren können. VLANs werden auch häufig dazu genutzt, um Netzwerke voneiander zu trennen. So ist oftmals eine Schnittstelle als Uplink zu einem größerem Netz, wie dem Internet vorkonfiguriert und die anderen Schnittstellen bilden ein VLAN für das lokale Netzwerk.'
 a_n_conntrack = 'Aktive Verbindungen'
index 9ca8b95..5f4e3a7 100644 (file)
 <i18n:msg xml:id="a_n_ptp1">Punkt-zu-Punkt Verbindungen über PPPoE oder PPTP werden häufig dazu verwendet, um über DSL o.ä. Techniken eine Verbindung zum Internetgateway eines Internetzugangsanbieters aufzubauen.</i18n:msg>
 <i18n:msg xml:id="a_n_r_netmask1">falls Ziel ein Netzwerk ist</i18n:msg>
 <i18n:msg xml:id="a_n_r_target1">Host-IP oder Netzwerk</i18n:msg>
+<i18n:msg xml:id="a_n_r_target6">IPv6 Host- oder Netzwerk-Addresse (CIDR)</i18n:msg>
 <i18n:msg xml:id="a_n_routes">Routen</i18n:msg>
+<i18n:msg xml:id="a_n_routes4">IPv4 Routen</i18n:msg>
+<i18n:msg xml:id="a_n_routes6">IPv6 Routen</i18n:msg>
 <i18n:msg xml:id="a_n_routes1">Routen geben an, über welche Schnittstelle und welches Gateway ein bestimmter Host oder ein bestimmtes Netzwerk erreicht werden kann.</i18n:msg>
 <i18n:msg xml:id="a_n_routes_static">Statische Routen</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static4">Statische IPv4 Routen</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static6">Statische IPv6 Routen</i18n:msg>
 <i18n:msg xml:id="a_n_routes_kernel4">Aktive IPv4-Routen</i18n:msg>
+<i18n:msg xml:id="a_n_routes_kernel6">Aktive IPv6-Routen</i18n:msg>
 <i18n:msg xml:id="a_n_switch">Switch</i18n:msg>
 <i18n:msg xml:id="a_n_switch1">Die Netzwerkschnittstellen am Router können zu verschienden VLANs zusammengefasst werden, in denen Geräte miteinander direkt kommunizieren können. VLANs werden auch häufig dazu genutzt, um Netzwerke voneiander zu trennen. So ist oftmals eine Schnittstelle als Uplink zu einem größerem Netz, wie dem Internet vorkonfiguriert und die anderen Schnittstellen bilden ein VLAN für das lokale Netzwerk.</i18n:msg>
 <i18n:msg xml:id="a_n_conntrack">Aktive Verbindungen</i18n:msg>
index 987501a..8038e37 100644 (file)
@@ -169,6 +169,8 @@ a_n_switch = 'Switch'
 a_n_conntrack = 'Conexões Ativas'
 a_n_conntrack_desc = 'Esta página fornece informações sobre as conexões de rede ativas.'
 a_n_routes = 'Rotas'
+a_n_routes4 = 'Rotas IPv4'
+a_n_routes6 = 'Rotas IPv6'
 a_network1 = 'Neste espaço você encontrará todas as configurações relacionadas à rede.'
 a_network2 = 'Na maioria dos roteadores o switch de rede pode ser configurado livremente e dividos em diversas <abbr title="Rede Local Virtual">VLAN</abbr>s.'
 a_network3 = 'Interfaces e Configurações-<abbr title="Protocolo Ponto-a-Ponto sobre Ethernet">PPPoE</abbr> / <abbr title="Protocolo de Tunelamento Ponto-a-Ponto">PPTP</abbr> permite uma organização customizada da rede e conexões com outras redes, como a Internet.'
@@ -223,8 +225,12 @@ network_interface_maxwait = 'Configurar tempo de espera'
 network_interface_maxwait_desc = 'Segundos de espera para o modem ficar pronto antes de tentar se conectar'
 a_n_r_routes1 = 'Rotas específicas sobre qual interface e gateway um determinado host ou rede pode ser alcançado.'
 a_n_routes_static = 'Rotas Estáticas'
+a_n_routes_static4 = 'Rotas Estáticas IPv4'
+a_n_routes_static6 = 'Rotas Estáticas IPv6'
 a_n_routes_kernel4 = 'Rotas-<abbr title="Protocolo de Internet Versão 4">IPv4</abbr> ativas'
+a_n_routes_kernel6 = 'Rotas-<abbr title="Protocolo de Internet Versão 6">IPv6</abbr> ativas'
 a_n_r_target1 = '<abbr title="Endereço do Protocolo de Internet">IP</abbr> do host ou rede'
+a_n_r_target6 = '<abbr title="Endereço do Protocolo de Internet Versão 6">IPv6</abbr> do host ou rede'
 a_n_r_netmask1 = 'se o destino for uma rede'
 m_n_inet = 'Conexão com a Internet'
 m_n_local = 'Rede Local'
index c898fcb..8fee8c1 100644 (file)
 <i18n:msg xml:id="a_n_conntrack">Conexões Ativas</i18n:msg>
 <i18n:msg xml:id="a_n_conntrack_desc">Esta página fornece informações sobre as conexões de rede ativas.</i18n:msg>
 <i18n:msg xml:id="a_n_routes">Rotas</i18n:msg>
+<i18n:msg xml:id="a_n_routes4">Rotas IPv4</i18n:msg>
+<i18n:msg xml:id="a_n_routes6">Rotas IPv6</i18n:msg>
 <i18n:msg xml:id="a_network1">Neste espaço você encontrará todas as configurações relacionadas à rede.</i18n:msg>
 <i18n:msg xml:id="a_network2">Na maioria dos roteadores o switch de rede pode ser configurado livremente e dividos em diversas <abbr title="Rede Local Virtual">VLAN</abbr>s.</i18n:msg>
 <i18n:msg xml:id="a_network3">Interfaces e Configurações-<abbr title="Protocolo Ponto-a-Ponto sobre Ethernet">PPPoE</abbr> / <abbr title="Protocolo de Tunelamento Ponto-a-Ponto">PPTP</abbr> permite uma organização customizada da rede e conexões com outras redes, como a Internet.</i18n:msg>
 <i18n:msg xml:id="network_interface_maxwait_desc">Segundos de espera para o modem ficar pronto antes de tentar se conectar</i18n:msg>
 <i18n:msg xml:id="a_n_r_routes1">Rotas específicas sobre qual interface e gateway um determinado host ou rede pode ser alcançado.</i18n:msg>
 <i18n:msg xml:id="a_n_routes_static">Rotas Estáticas</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static4">Rotas Estáticas IPv4</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static6">Rotas Estáticas IPv6</i18n:msg>
 <i18n:msg xml:id="a_n_routes_kernel4">Rotas-<abbr title="Protocolo de Internet Versão 4">IPv4</abbr> ativas</i18n:msg>
+<i18n:msg xml:id="a_n_routes_kernel6">Rotas-<abbr title="Protocolo de Internet Versão 6">IPv6</abbr> ativas</i18n:msg>
 <i18n:msg xml:id="a_n_r_target1"><abbr title="Endereço do Protocolo de Internet">IP</abbr> do host ou rede</i18n:msg>
+<i18n:msg xml:id="a_n_r_target6"><abbr title="Endereço do Protocolo de Internet Versão 6">IPv6</abbr> do host ou rede</i18n:msg>
 <i18n:msg xml:id="a_n_r_netmask1">se o destino for uma rede</i18n:msg>
 <i18n:msg xml:id="m_n_inet">Conexão com a Internet</i18n:msg>
 <i18n:msg xml:id="m_n_local">Rede Local</i18n:msg>
index 8e19863..723907f 100644 (file)
@@ -161,6 +161,8 @@ dhcp_dnsmasq_addnhosts = 'дополнительный hostfile'
 dhcp_dnsmasq_queryport = 'порт запросов'
 a_n_switch = 'Свитч'
 a_n_routes = 'Маршрутизация'
+a_n_routes4 = 'Маршрутизация IPv4'
+a_n_routes6 = 'Маршрутизация IPv6'
 a_n_routes1 = 'Маршрутизация служит для определения через какой интерфейс и шлюз можно пройти к определённому хосту или сегменту сети.'
 a_network1 = 'В этом разделе вы сможете найти всё что касается настроек сети.'
 a_network2 = 'В большенстве роутеров сетевой свитч может быть свободно настроен и добавлен в различные <abbr title="Виртуальные локальные сети">VLAN</abbr>&#39;ы.'
@@ -193,8 +195,12 @@ network_interface_keepalive = 'Keep-Alive'
 network_interface_keepalive_desc = 'Количество неудачных соединений для инициализации переподсоединения к серверу'
 a_n_r_routes1 = 'Маршрутизация служит для определения через какой интерфейс и шлюз можно пройти к определённому хосту или сегменту сети.'
 a_n_routes_static = 'Статическая маршрутизация'
+a_n_routes_static4 = 'Статическая маршрутизация IPv4'
+a_n_routes_static6 = 'Статическая маршрутизация IPv6'
 a_n_routes_kernel4 = 'Включение <abbr title="Интернет протокол версии 4">IPv4</abbr>-Маршрутизации'
+a_n_routes_kernel6 = 'Включение <abbr title="Интернет протокол версии 6">IPv6</abbr>-Маршрутизации'
 a_n_r_target1 = 'Хост-<abbr title="Адрес интернет протокола">IP</abbr> или сеть'
+a_n_r_target6 = 'Хост-<abbr title="Адрес интернет протокола версии 6">IPv6</abbr> или сеть'
 a_n_r_netmask1 = 'если сеть'
 m_n_inet = 'Интернет соединение'
 m_n_local = 'Локальная сеть'
index b98786f..d5b55a0 100644 (file)
 <i18n:msg xml:id="dhcp_dnsmasq_queryport">порт запросов</i18n:msg>
 <i18n:msg xml:id="a_n_switch">Свитч</i18n:msg>
 <i18n:msg xml:id="a_n_routes">Маршрутизация</i18n:msg>
+<i18n:msg xml:id="a_n_routes4">Маршрутизация IPv4</i18n:msg>
+<i18n:msg xml:id="a_n_routes6">Маршрутизация IPv6</i18n:msg>
 <i18n:msg xml:id="a_n_routes1">Маршрутизация служит для определения через какой интерфейс и шлюз можно пройти к определённому хосту или сегменту сети.</i18n:msg>
 
 <i18n:msg xml:id="a_network1">В этом разделе вы сможете найти всё что касается настроек сети.</i18n:msg>
 <i18n:msg xml:id="network_interface_keepalive_desc">Количество неудачных соединений для инициализации переподсоединения к серверу</i18n:msg>
 <i18n:msg xml:id="a_n_r_routes1">Маршрутизация служит для определения через какой интерфейс и шлюз можно пройти к определённому хосту или сегменту сети.</i18n:msg>
 <i18n:msg xml:id="a_n_routes_static">Статическая маршрутизация</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static4">Статическая маршрутизация IPv4</i18n:msg>
+<i18n:msg xml:id="a_n_routes_static6">Статическая маршрутизация IPv6</i18n:msg>
 <i18n:msg xml:id="a_n_routes_kernel4">Включение <abbr title="Интернет протокол версии 4">IPv4</abbr>-Маршрутизации</i18n:msg>
+<i18n:msg xml:id="a_n_routes_kernel6">Включение <abbr title="Интернет протокол версии 6">IPv6</abbr>-Маршрутизации</i18n:msg>
 <i18n:msg xml:id="a_n_r_target1">Хост-<abbr title="Адрес интернет протокола">IP</abbr> или сеть</i18n:msg>
+<i18n:msg xml:id="a_n_r_target6">Хост-<abbr title="Адрес интернет протокола версии 6">IPv6</abbr> или сеть</i18n:msg>
 <i18n:msg xml:id="a_n_r_netmask1">если сеть</i18n:msg>
 <i18n:msg xml:id="m_n_inet">Интернет соединение</i18n:msg>
 <i18n:msg xml:id="m_n_local">Локальная сеть</i18n:msg>
index bba701a..590ea76 100644 (file)
@@ -314,7 +314,7 @@ function Hex( hex, prefix, family, swap )
                end
        end
 
-       return __bless({ family, data, len })
+       return __bless({ family, data, prefix })
 end
 
 
@@ -481,7 +481,7 @@ end
 -- @see                        cidr.broadcast
 -- @see                        cidr.mask
 function cidr.host( self )
-       return __bless({ self[1], data, __maxlen(self[1]) })
+       return __bless({ self[1], self[2], __maxlen(self[1]) })
 end
 
 --- Return a corresponding CIDR representing the netmask of this instance.
index 52ed0c3..b7e374d 100644 (file)
@@ -361,6 +361,53 @@ function net.routes()
        return _parse_delimited_table(io.lines("/proc/net/route"))
 end
 
+--- Returns the current ipv6 kernel routing table entries.
+-- @return     Table of tables with properties of the corresponding routes.
+--                     The following fields are defined for route entry tables:
+--                     { "src_ip", "src_prefix", "dst_ip", "dst_prefix", "nexthop_ip",
+--            "metric", "refcount", "usecount", "flags", "device" }
+function net.routes6()
+       local routes = { }
+
+       for line in io.lines("/proc/net/ipv6_route") do
+
+               local dst_ip, dst_prefix, src_ip, src_prefix, nexthop,
+                         metric, refcnt, usecnt, flags, dev = line:match(
+                       "([a-f0-9]+) ([a-f0-9]+) " ..
+                       "([a-f0-9]+) ([a-f0-9]+) " ..
+                       "([a-f0-9]+) ([a-f0-9]+) " ..
+                       "([a-f0-9]+) ([a-f0-9]+) " ..
+                       "([^%s]+) +([^%s]+)"
+               )
+
+               src_ip = luci.ip.Hex(
+                       src_ip, tonumber(src_prefix, 16),
+                       luci.ip.FAMILY_INET6, false
+               )
+
+               dst_ip = luci.ip.Hex(
+                       dst_ip, tonumber(dst_prefix, 16),
+                       luci.ip.FAMILY_INET6, false
+               )
+
+               nexthop = luci.ip.Hex( nexthop, 128, luci.ip.FAMILY_INET6, false )
+
+               routes[#routes+1] = {
+                       src_ip     = src_ip:host():string(),
+                       src_prefix = src_ip:prefix(),
+                       dst_ip     = dst_ip:host():string(),
+                       dst_prefix = dst_ip:prefix(),
+                       nexthop_ip = nexthop:string(),
+                       metric     = tonumber(metric, 16),
+                       refcount   = tonumber(refcnt, 16),
+                       usecount   = tonumber(usecnt, 16),
+                       flags      = tonumber(flags), -- hex?
+                       device     = dev
+               }
+       end
+
+       return routes
+end
 
 --- Tests whether the given host responds to ping probes.
 -- @param host String containing a hostname or IPv4 address
index e0a6dc1..8cf79cb 100644 (file)
@@ -386,6 +386,46 @@ config variable
        option datatype 'ip4addr'
        option required 'true'
 
+config variable
+       option name     'metric'
+       option title    'Metric'
+       option section  'network.route6'
+       option datatype 'uint'
+
+
+
+config section
+       option name     'route6'
+       option title    'Static IPv6 route definition'
+       option package  'network'
+
+config variable
+       option name     'interface'
+       option title    'Interface'
+       option section  'network.route6'
+       option valueof  'network.interface'
+       option required 'true'
+
+config variable
+       option name     'target'
+       option title    'Target IPv6 host or network (CIDR)'
+       option section  'network.route6'
+       option datatype 'ip6addr'
+       option required 'true'
+
+config variable
+       option name     'gateway'
+       option title    'IPv6 gateway'
+       option section  'network.route6'
+       option datatype 'ip6addr'
+       option required 'true'
+
+config variable
+       option name     'metric'
+       option title    'Metric'
+       option section  'network.route6'
+       option datatype 'uint'
+
 
 
 config section
index aa32324..a236e8c 100644 (file)
@@ -16,35 +16,61 @@ m = Map("network", translate("a_n_routes"), translate("a_n_routes1"))
 
 if not arg or not arg[1] then
        local routes = luci.sys.net.routes()
-       
+
        v = m:section(Table, routes, translate("a_n_routes_kernel4"))
-       
+
        net = v:option(DummyValue, "iface", translate("network"))
        function net.cfgvalue(self, section)
                return luci.tools.webadmin.iface_get_network(routes[section].Iface)
                 or routes[section].Iface
        end
-       
+
        target  = v:option(DummyValue, "target", translate("target"))
        function target.cfgvalue(self, section)
                return luci.ip.Hex(routes[section].Destination, 32):string()
        end
-       
+
        netmask = v:option(DummyValue, "netmask", translate("netmask"))
        function netmask.cfgvalue(self, section)
                return luci.ip.Hex(routes[section].Mask, 32):string()
        end
-       
+
        gateway = v:option(DummyValue, "gateway", translate("gateway"))
        function gateway.cfgvalue(self, section)
                return luci.ip.Hex(routes[section].Gateway, 32):string()
        end
-       
+
+       metric = v:option(DummyValue, "Metric", translate("metric"))
+
+
+       local routes6 = luci.sys.net.routes6()
+
+       v = m:section(Table, routes6, translate("a_n_routes_kernel6"))
+
+       net = v:option(DummyValue, "iface", translate("network"))
+       function net.cfgvalue(self, section)
+               return luci.tools.webadmin.iface_get_network(routes6[section].device)
+                or routes6[section].device
+       end
+
+       target  = v:option(DummyValue, "target", translate("target"))
+       function target.cfgvalue(self, section)
+               return routes6[section].dst_ip .. "/" .. routes6[section].dst_prefix
+       end
+
+       gateway = v:option(DummyValue, "gateway", translate("gateway6"))
+       function gateway.cfgvalue(self, section)
+               return routes6[section].src_ip .. "/" .. routes6[section].src_prefix
+       end
+
        metric = v:option(DummyValue, "Metric", translate("metric"))
+    function metric.cfgvalue(self, section)
+        return string.format( "%08X", routes6[section].metric )
+    end
 end
 
 
-s = m:section(TypedSection, "route", translate("a_n_routes_static"))
+s = m:section(TypedSection, "route", translate("a_n_routes_static4"))
 s.addremove = true
 s.anonymous = true
 
@@ -63,4 +89,23 @@ s:option(Value, "netmask", translate("netmask"), translate("a_n_r_netmask1")).rm
 
 s:option(Value, "gateway", translate("gateway"))
 
-return m
\ No newline at end of file
+
+s = m:section(TypedSection, "route6", translate("a_n_routes_static6"))
+s.addremove = true
+s.anonymous = true
+
+s.template  = "cbi/tblsection"
+
+iface = s:option(ListValue, "interface", translate("interface"))
+luci.tools.webadmin.cbi_add_networks(iface)
+
+if not arg or not arg[1] then
+       net.titleref = iface.titleref
+end
+
+s:option(Value, "target", translate("target"), translate("a_n_r_target6"))
+
+s:option(Value, "gateway", translate("gateway6")).rmempty = true
+
+
+return m