From: Paul Donald Date: Sun, 21 Apr 2024 23:31:16 +0000 (+0200) Subject: luci-app-lldpd: Fixes and additions X-Git-Url: http://git.openwrt.org/project/luci.git;master?a=commitdiff_plain;h=d3953006c2fe54806db97dbbadc2163847cd1dbf;p=project%2Fluci.git luci-app-lldpd: Fixes and additions Signed-off-by: Paul Donald --- diff --git a/applications/luci-app-lldpd/Makefile b/applications/luci-app-lldpd/Makefile index e5ab43ec4d..7007659d11 100644 --- a/applications/luci-app-lldpd/Makefile +++ b/applications/luci-app-lldpd/Makefile @@ -1,6 +1,8 @@ # # Copyright (c) 2018, Tano Systems. All Rights Reserved. # Anton Kikin +# Copyright (c) 2023-2024. All Rights Reserved. +# Paul Donald # include $(TOPDIR)/rules.mk diff --git a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js index bc39ed5018..7b0121e548 100644 --- a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js +++ b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js @@ -1,6 +1,8 @@ /* * Copyright (c) 2018-2020, Tano Systems LLC. All Rights Reserved. * Anton Kikin + * Copyright (c) 2023-2024. All Rights Reserved. + * Paul Donald */ 'use strict'; @@ -40,6 +42,11 @@ * 18 x x x * 19 x x x */ + +const etitle = _('enable filter'); +const ptitle = _('keep only one protocol'); +const ntitle = _('keep only one neighbor'); + var cbiFilterSelect = form.Value.extend({ __name__: 'CBI.LLDPD.FilterSelect', @@ -98,9 +105,9 @@ var cbiFilterSelect = form.Value.extend({ // Prepend description with table legend this.description = - '
  • ' + _('E — enable filter') + '
  • ' + - '
  • ' + _('P — keep only one protocol') + '
  • ' + - '
  • ' + _('N — keep only one neighbor') + '
  • ' + + '
    • ' + 'E — ' + etitle + '
    • ' + + '
    • ' + 'P — ' + ptitle + '
    • ' + + '
    • ' + 'N — ' + ntitle + '
    • ' + '
    ' + this.description; var rendered = this.super('renderFrame', arguments); @@ -112,7 +119,8 @@ var cbiFilterSelect = form.Value.extend({ }, renderWidget: function(section_id, option_index, cfgvalue) { - var selected = parseInt(cfgvalue) - 1; + //default value is "15" - rows are zero based + var selected = parseInt(cfgvalue) || 15; var tbody = []; @@ -138,12 +146,12 @@ var cbiFilterSelect = form.Value.extend({ }) ]), E('td', {}, i), - E('td', {}, renderFilterVal(i, 0)), - E('td', {}, renderFilterVal(i, 1)), - E('td', {}, renderFilterVal(i, 2)), - E('td', {}, renderFilterVal(i, 3)), - E('td', {}, renderFilterVal(i, 4)), - E('td', {}, renderFilterVal(i, 5)) + E('td', {'title': etitle}, renderFilterVal(i, 0)), + E('td', {'title': ptitle}, renderFilterVal(i, 1)), + E('td', {'title': ntitle}, renderFilterVal(i, 2)), + E('td', {'title': etitle}, renderFilterVal(i, 3)), + E('td', {'title': ptitle}, renderFilterVal(i, 4)), + E('td', {'title': ntitle}, renderFilterVal(i, 5)) ])); }; @@ -171,6 +179,29 @@ var cbiFilterSelect = form.Value.extend({ }, }); +var CBIMultiIOSelect = form.MultiValue.extend({ + __name__: 'CBI.MultiIOSelect', + + renderWidget: function(section_id, option_index, cfgvalue) { + var value = (cfgvalue != null) ? cfgvalue : this.default ? this.default : '', + choices = this.transformChoices() ? this.transformChoices() : ''; + + var widget = new ui.Dropdown(L.toArray(value), choices, { + id: this.cbid(section_id), + sort: this.keylist, + multiple: true, + optional: true, + display_items: 5, + dropdown_items: -1, + create: true, + disabled: (this.readonly != null) ? this.readonly : this.map.readonly, + validate: L.bind(this.validate, this, section_id), + }); + + return widget.render(); + } +}); + function init() { return new Promise(function(resolveFn, rejectFn) { var data = session.getLocalData('luci-app-lldpd'); @@ -189,5 +220,6 @@ function init() { return L.Class.extend({ cbiFilterSelect: cbiFilterSelect, + CBIMultiIOSelect: CBIMultiIOSelect, init: init, }); diff --git a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_hide.svg b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_hide.svg index 7607870d58..0b64b95c78 100644 --- a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_hide.svg +++ b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_hide.svg @@ -1,13 +1,9 @@ - - - - - -image/svg+xml - - - - - - - + + + image/svg+xml + + + Layer 1 + + + \ No newline at end of file diff --git a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_show.svg b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_show.svg index 867ef4b998..e51e19ddee 100644 --- a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_show.svg +++ b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/details_show.svg @@ -1,14 +1,9 @@ - - - - - -image/svg+xml - - - - - - - - + + + image/svg+xml + + + Layer 1 + + + \ No newline at end of file diff --git a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/lldpd.css b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/lldpd.css index 0f3c0e1b98..5932e41536 100644 --- a/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/lldpd.css +++ b/applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd/lldpd.css @@ -1,6 +1,8 @@ /* * Copyright (c) 2020, Tano Systems LLC. All Rights Reserved. * Author: Anton Kikin + * Copyright (c) 2023-2024. All Rights Reserved. + * Paul Donald */ /* @@ -9,7 +11,7 @@ table.lldpd-filter td, table.lldpd-filter th { border: 1px solid #ccc !important; - padding: 2px 10px 2px 10px; + padding: 2px 10px; text-align: center; } @@ -25,7 +27,7 @@ table.lldpd-filter tbody tr { } table.lldpd-filter tr.lldpd-filter-selected td { - background-color: #eeeeee; + background-color: #EEE; } /* @@ -33,18 +35,12 @@ table.lldpd-filter tr.lldpd-filter-selected td { */ .lldpd-params { column-count: 2; - -moz-column-count: 2; - -webkit-column-count: 2; column-gap: 24px; - -moz-column-gap: 24px; - -webkit-column-gap: 24px; } @media only screen and (max-width: 850px) { .lldpd-params { column-count: 1; - -moz-column-count: 1; - -webkit-column-count: 1; } } @@ -53,9 +49,7 @@ table.lldpd-filter tr.lldpd-filter-selected td { grid-template-columns: 1fr auto; border-bottom: 1px solid #e6e6e6; padding: 0 8px; - -webkit-column-break-inside: avoid; - -moz-column-break-inside: avoid; - column-break-inside: avoid; +/* column-break-inside: avoid;*/ } .td .lldpd-params > div:last-of-type { @@ -79,8 +73,6 @@ table.lldpd-filter tr.lldpd-filter-selected td { .td .lldpd-params { column-count: 1; - -moz-column-count: 1; - -webkit-column-count: 1; } .td .lldpd-params > div { @@ -101,8 +93,6 @@ table.lldpd-filter tr.lldpd-filter-selected td { display: inline-block; width: auto !important; width: fit-content !important; - width: -moz-fit-content !important; - width: -webkit-fit-content !important; box-shadow: 0 1px 3px 0 grey; padding: 0px 8px; border-radius: 5px; diff --git a/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js b/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js index a4761f969e..a8e32b4275 100644 --- a/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js +++ b/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js @@ -1,12 +1,15 @@ /* * Copyright (c) 2020 Tano Systems LLC. All Rights Reserved. * Author: Anton Kikin + * Copyright (c) 2023-2024. All Rights Reserved. + * Paul Donald */ 'use strict'; 'require rpc'; 'require form'; 'require lldpd'; +'require network'; 'require uci'; 'require tools.widgets as widgets'; @@ -29,6 +32,25 @@ var callInitAction = rpc.declare({ expect: { result: false } }); +var usage = _('See syntax here.').format('href=https://lldpd.github.io/usage.html target="_blank"'); + +const validateioentries = function(section_id, value) { + if (value) { + const emsg = _('Cannot have both interface %s and its exclusion %s'); + const a = value.split(' '); + const noex = a.filter(el=> !el.startsWith('!')); + const ex = a.filter(el=> el.startsWith('!') && !el.startsWith('!!')); + for (var i of noex) { + for (var e of ex) { + if ('!'+i == e){ + return emsg.format(i, e); + } + } + } + } + return true; +}; + return L.view.extend({ __init__: function() { this.super('__init__', arguments); @@ -46,7 +68,8 @@ return L.view.extend({ return Promise.all([ callInitList('lldpd'), lldpd.init(), - uci.load('lldpd') + uci.load('lldpd'), + network.getDevices() ]); }, @@ -60,6 +83,7 @@ return L.view.extend({ populateBasicOptions: function(s, tab, data) { var o; var serviceEnabled = data[0]; + var net_devices = data[3]; // Service enable/disable o = s.taboption(tab, form.Flag, 'enabled', _('Enable service')); @@ -71,17 +95,17 @@ return L.view.extend({ }; o.write = function(section_id, value) { - uci.set('mstpd', section_id, 'enabled', value); + uci.set('lldpd', section_id, 'enabled', value); if (value == '1') { // Enable and start - return callInitAction('lldpd', 'enable').then(function() { + callInitAction('lldpd', 'enable').then(function() { return callInitAction('lldpd', 'start'); }); } else { // Stop and disable - return callInitAction('lldpd', 'stop').then(function() { + callInitAction('lldpd', 'stop').then(function() { return callInitAction('lldpd', 'disable'); }); } @@ -90,71 +114,120 @@ return L.view.extend({ // System description o = s.taboption(tab, form.Value, 'lldp_description', _('System description'), - _('Override system description with the provided description.')); + _('Override %s.').format('system description')); o.placeholder = 'System description'; // System hostname o = s.taboption(tab, form.Value, 'lldp_hostname', _('System hostname'), - _('Override system hostname with the provided value.')); + _('Override %s.').format('system hostname')); o.placeholder = 'System hostname'; // Host location o = s.taboption(tab, form.Value, 'lldp_location', _('Host location'), - _('Override the location of the host announced by lldp.')); - + _('Override the announced location of the host.') + '
    ' + + usage); + // multiple syntaxes alert for location parameter o.placeholder = 'address country EU'; + o.rmempty = true; + o.validate = function(section_id, value) { + if (value) { + if (!value.match(/^coordinate |^address |^elin /)) + return _("Must start: 'coordinate ...', 'address ...' or 'elin ...'"); + } + return true; + }; + // Platform o = s.taboption(tab, form.Value, 'lldp_platform', _('System platform description'), - _('Override the platform description with the provided value. ' + - 'The default description is the kernel name (Linux).')); + _('Override %s.').format('system platform') + '
    ' + + _('The default description is the kernel name (Linux).')); o.placeholder = 'System platform description'; + o = s.taboption(tab, form.Flag, 'lldp_capability_advertisements', _('System capability advertisements')); + o.default = '1'; //lldpd internal default + + // Capabilities override + o = s.taboption(tab, form.MultiValue, 'lldp_syscapabilities', + _('System capabilities'), + _('Override %s.').format('system capabilities') + '
    ' + + _('The default is derived from kernel information.')); + o.depends({lldp_capability_advertisements: '1'}); + o.value('bridge'); + o.value('docsis'); + o.value('other'); + o.value('repeater'); + o.value('router'); + o.value('station'); + o.value('telephone'); + o.value('wlan'); + o.cfgvalue = function(section_id) { + return String(this.super('load', [section_id]) || this.default).split(','); + }; + o.write = function(section_id, value) { + return this.super('write', [ section_id, L.toArray(value).join(',') ]); + }; + + o = s.taboption(tab, form.Flag, 'lldp_mgmt_addr_advertisements', _('System management IO advertisements')); + o.default = '1'; //lldpd internal default + // Management addresses of this system - o = s.taboption(tab, form.Value, 'lldp_mgmt_ip', - _('Management addresses of this system'), - _('Specify the management addresses of this system. ' + - 'If not specified, the first IPv4 and the first ' + - 'IPv6 are used. If an exact IP address is provided, it is used ' + - 'as a management address without any check. If you want to ' + - 'blacklist IPv6 addresses, you can use !*:*. ' + - 'See more details about available patterns ' + - 'here.')); - - o.placeholder = 'Management addresses'; + // This value: lldpd.init handles as a single value, and needs a CSV for lldpd.conf: 'configure system ip management pattern' + o = s.taboption(tab, lldpd.CBIMultiIOSelect, 'lldp_mgmt_ip', + _('System management IO'), + _('Defaults to the first IPv4 and IPv6. ' + + 'If an exact IP address is provided, it is used ' + + 'as a management address without any check. To ' + + 'blacklist IPv6 addresses, use !*:*.') + '
    ' + + usage); + o.placeholder = 'Addresses and interfaces'; + o.depends({lldp_mgmt_addr_advertisements: '1'}); + o.cfgvalue = function(section_id) { + const opt = uci.get(this.config, section_id, this.option); + return opt ? opt.split(',') : ''; + }; + net_devices.forEach(nd => { + o.value(nd.getName()); + o.value('!'+nd.getName()); + nd.getIPAddrs().forEach(addr => o.value(addr.split('/')[0], E([], [addr.split('/')[0], ' (', E('strong', {}, nd.getName()), ')']))); + nd.getIP6Addrs().forEach(addr => o.value(addr.split('/')[0], E([], [addr.split('/')[0], ' (', E('strong', {}, nd.getName()), ')']))); + }); + o.value('!*:*'); + o.validate = validateioentries; + o.write = function(section_id, value, sep) { + return this.super('write', [ section_id, value.join(',') ]); + } // LLDP tx interval o = s.taboption(tab, form.Value, 'lldp_tx_interval', _('Transmit delay'), - _('The transmit delay is the delay between two ' + + _('The delay between ' + 'transmissions of LLDP PDU. The default value ' + - 'is 30 seconds.')); - - o.datatype = 'uinteger'; + 'is 30 seconds.') + '
    ' + + _('Suffix %s for millisecond values.').format('ms')); o.default = 30; o.placeholder = 30; o.rmempty = false; o.validate = function(section_id, value) { - if (value != parseInt(value)) - return _('Must be a number'); - else if (value <= 0) - return _('Transmit delay must be greater than 0'); + const pattern = /^(\d+)(?:ms)?$/; + if (!value.match(pattern) || parseInt(value) <= 0) + return _('Must be a greater than zero number optionally suffixed with "ms"'); return true; }; // LLDP tx hold o = s.taboption(tab, form.Value, 'lldp_tx_hold', _('Transmit hold value'), - _('This value is used to compute the TTL of transmitted ' + - 'packets which is the product of this value and of the ' + - 'transmit delay. The default value is 4 and therefore ' + + _('Determines the transmitted ' + + 'packet TTL (== this value * transmit delay). ' + + 'The default value is 4 ∴ ' + 'the default TTL is 120 seconds.')); o.datatype = 'uinteger'; @@ -172,9 +245,9 @@ return L.view.extend({ // Received-only mode (-r) o = s.taboption(tab, form.Flag, 'readonly_mode', - _('Enable receive-only mode'), - _('With this option, LLDPd will not send any frames. ' + - 'It will only listen to neighbors.')); + _('Receive-only mode'), + _("LLDPd won't send any frames; " + + 'only listen to neighbors.')); o.rmempty = false; o.optional = false; @@ -190,34 +263,43 @@ return L.view.extend({ /** @private */ populateIfacesOptions: function(s, tab, data) { var o; + var net_devices = data[3]; // Interfaces to listen on - o = s.taboption(tab, widgets.DeviceSelect, 'interface', - _('Network interfaces'), - _('Specify which interface to listen and send LLDPDU to. ' + - 'If no interfaces is specified, LLDPd will use all available physical interfaces.')); - - o.nobridges = true; - o.rmempty = true; - o.multiple = true; - o.nocreate = true; - o.noaliases = true; - o.networks = null; + // This value: lldpd.init handles as a list value, and produces a CSV for lldpd.conf: 'configure system interface pattern' + o = s.taboption(tab, lldpd.CBIMultiIOSelect, 'interface', + _('Network IO'), + _('Specify which interface (not) to listen upon and send LLDPDU from. ' + + 'Absent any value, LLDPd uses all available physical interfaces.')); + + o.value('*'); + net_devices.forEach(nd => { + o.value(nd.getName()); + o.value('!'+nd.getName()); + o.value('!!'+nd.getName()); + }); + o.value('!*:*'); + o.validate = validateioentries; // ChassisID interfaces - o = s.taboption(tab, widgets.DeviceSelect, 'cid_interface', - _('Network interfaces for chassis ID computing'), - _('Specify which interfaces to use for computing chassis ID. ' + - 'If no interfaces is specified, all interfaces are considered. ' + - 'LLDPd will take the first MAC address from all the considered ' + + // This value: lldpd.init handles as a list value, and produces a CSV for the -C param + o = s.taboption(tab, lldpd.CBIMultiIOSelect, 'cid_interface', + _('Network IO for chassis ID'), + _('Specify which interfaces (not) to use for computing chassis ID. ' + + 'Absent any value, all interfaces are considered. ' + + 'LLDPd takes the first MAC address from all the considered ' + 'interfaces to compute the chassis ID.')); - o.nobridges = false; - o.rmempty = true; - o.multiple = true; - o.nocreate = true; - o.noaliases = true; - o.networks = null; + o.value('*'); + o.value('!*'); + net_devices.forEach(nd => { + o.value(nd.getName()); + o.value('!'+nd.getName()); + o.value('!!'+nd.getName()); + }); + o.value('!*:*'); + o.validate = validateioentries; + }, // ----------------------------------------------------------------------------------------- @@ -242,7 +324,7 @@ return L.view.extend({ // o.placeholder = '/var/run/agentx.sock'; // o.default = ''; - // LLDP class + // LLDP-MED class o = s.taboption(tab, form.ListValue, 'lldp_class', _('LLDP-MED device class')); @@ -253,12 +335,55 @@ return L.view.extend({ o.default = '4'; + // LLDP-MED policy + o = s.taboption(tab, form.Value, 'lldp_policy', + _('LLDP-MED policy')); + o.depends({lldp_class: '2'}); + o.depends({lldp_class: '3'}); + + o.rmempty = true; + o.placeholder = 'application streaming-video'; + o.value('application voice'); + o.value('application voice unknown'); + o.value('application voice-signaling'); + o.value('application voice-signaling unknown'); + o.value('application guest-voice'); + o.value('application guest-voice unknown'); + o.value('application guest-voice-signaling'); + o.value('application guest-voice-signaling unknown'); + o.value('application softphone-voice'); + o.value('application softphone-voice unknown'); + o.value('application video-conferencing'); + o.value('application video-conferencing unknown'); + o.value('application streaming-video'); + o.value('application streaming-video unknown'); + o.value('application video-signaling'); + o.value('application video-signaling unknown'); + + o.validate = function(section_id, value) { + if (value && !value.startsWith('application ')) + return _('Must start: application ...'); + return true; + }; + + // LLDP-MED fast-start + o = s.taboption(tab, form.Flag, 'lldpmed_fast_start', + _('LLDP-MED fast-start')); + + // LLDP-MED fast-start + o = s.taboption(tab, form.Value, 'lldpmed_fast_start_tx_interval', + _('LLDP-MED fast-start tx-interval')); + o.depends({lldpmed_fast_start: '1'}); + o.datatype = 'uinteger'; + o.placeholder = '10'; + o.rmempty = true; + // LLDP-MED inventory TLV transmission (-i) o = s.taboption(tab, form.Flag, 'lldpmed_no_inventory', _('Disable LLDP-MED inventory TLV transmission'), _('LLDPd will still receive (and publish using SNMP if enabled) ' + 'those LLDP-MED TLV but will not send them. Use this option ' + - 'if you don\'t want to transmit sensible information like serial numbers.')); + 'if you do not want to transmit sensitive information like serial numbers.')); o.default = '0'; @@ -266,15 +391,15 @@ return L.view.extend({ o = s.taboption(tab, form.Flag, 'lldp_no_version', _('Disable advertising of kernel release, version and machine'), _('Kernel name (ie: Linux) will still be shared, and Inventory ' + - 'software version will be set to \'Unknown\'.')); + 'software version will be set to %s.').format('Unknown')); o.default = '0'; // Filter neighbors (-H) o = s.taboption(tab, lldpd.cbiFilterSelect, 'filter', _('Specify the behaviour when detecting multiple neighbors'), - _('The default filter is 15. For more details see \"FILTERING NEIGHBORS\" section ' + - 'here.')); + _('The default filter is 15. Refer to "FILTERING NEIGHBORS".') + '
    ' + + usage); o.default = 15; @@ -291,11 +416,11 @@ return L.view.extend({ // The destination MAC address used to send LLDPDU o = s.taboption(tab, form.ListValue, 'lldp_agenttype', - _('The destination MAC address used to send LLDPDU'), - _('The destination MAC address used to send LLDPDU allows an agent ' + + _('LLDPDU destination MAC'), + _('Allows an agent ' + 'to control the propagation of LLDPDUs. By default, the ' + - '01:80:c2:00:00:0e MAC address is used and limit the propagation ' + - 'of the LLDPDU to the nearest bridge.')); + 'MAC address %s is used and limits the propagation ' + + 'of the LLDPDU to the nearest bridge.').format('01:80:c2:00:00:0e')); o.value('nearest-bridge', '01:80:c2:00:00:0e (nearest-bridge)'); o.value('nearest-nontpmr-bridge', '01:80:c2:00:00:03 (nearest-nontpmr-bridge)'); @@ -331,10 +456,10 @@ return L.view.extend({ o.rmempty = true; o = ss.taboption('lldp', form.Flag, 'force_lldp', - _('Force to send LLDP packets'), - _('Force to send LLDP packets even when there is no LLDP peer ' + - 'detected but there is a peer speaking another protocol detected. ' + - 'By default, LLDP packets are sent when there is a peer speaking ' + + _('Force sending LLDP packets'), + _('Even when there is no LLDP peer ' + + 'detected but there is a peer speaking another protocol detected.') + '
    ' + + _('By default, LLDP packets are sent when there is a peer speaking ' + 'LLDP detected or when there is no peer at all.')); o.default = '0'; @@ -469,8 +594,8 @@ return L.view.extend({ var m, s; m = new form.Map('lldpd', _('LLDPd Settings'), - _('LLDPd is a implementation of IEEE 802.1ab ' + - '(LLDP).') + + _('LLDPd is an implementation of IEEE 802.1ab') + ' ' + + '(LLDP).' + ' ' + _('On this page you may configure LLDPd parameters.')); s = m.section(form.TypedSection, 'lldpd'); diff --git a/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js b/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js index 96847e11c3..b3fa30b3cb 100644 --- a/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js +++ b/applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js @@ -1,6 +1,8 @@ /* * Copyright (c) 2020 Tano Systems. All Rights Reserved. * Author: Anton Kikin + * Copyright (c) 2023-2024. All Rights Reserved. + * Paul Donald */ 'use strict'; @@ -11,7 +13,7 @@ 'require poll'; var callLLDPStatus = rpc.declare({ - object: 'lldpd', + object: 'luci.lldpd', method: 'getStatus', expect: {} }); @@ -21,7 +23,7 @@ var dataMap = { localChassis: null, }, remote: { - neightbors: null, + neighbors: null, statistics: null, }, }; diff --git a/applications/luci-app-lldpd/po/ru/lldpd.po b/applications/luci-app-lldpd/po/ru/lldpd.po index be605661cb..32998ff31a 100644 --- a/applications/luci-app-lldpd/po/ru/lldpd.po +++ b/applications/luci-app-lldpd/po/ru/lldpd.po @@ -13,118 +13,157 @@ msgstr "" "POT-Creation-Date: 2018-05-23 18:25+0300\n" "X-Generator: Poedit 2.3\n" -#: htdocs/luci-static/resources/view/lldpd/status.js:52 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:52 msgid "Administrative Status" msgstr "Административное состояние" -#: htdocs/luci-static/resources/view/lldpd/config.js:445 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:584 msgid "Advanced Settings" msgstr "Дополнительные настройки" -#: htdocs/luci-static/resources/view/lldpd/status.js:196 -#: htdocs/luci-static/resources/view/lldpd/status.js:207 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:196 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:207 msgid "Age" msgstr "Возраст" -#: htdocs/luci-static/resources/view/lldpd/status.js:57 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:57 msgid "Ageout count" msgstr "Устарело" -#: htdocs/luci-static/resources/view/lldpd/config.js:439 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:418 +msgid "" +"Allows an agent to control the propagation of LLDPDUs. By default, the MAC " +"address %s is used and limits the propagation of the LLDPDU to the nearest " +"bridge." +msgstr "" +"Данный параметр позволяет агенту контролировать распространение LLDPDU. По " +"умолчанию используется MAC-адрес %s и ограничивает распространение LLDPDU до " +"ближайшего моста." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:578 msgid "Basic Settings" msgstr "Основные настройки" -#: htdocs/luci-static/resources/view/lldpd/config.js:332 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:460 +msgid "" +"By default, LLDP packets are sent when there is a peer speaking LLDP " +"detected or when there is no peer at all." +msgstr "" +"По умолчанию пакеты LLDP отправляются, когда обнаружен сосед с поддержкой " +"LLDP или когда вообще нет обнаруженных соседей." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:471 msgid "CDP" msgstr "CDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:342 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:481 msgid "CDP version" msgstr "Версия протокола CDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:344 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:483 msgid "CDPv1 and CDPv2" msgstr "CDPv1 и CDPv2" -#: htdocs/luci-static/resources/view/lldpd/status.js:317 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:37 +msgid "Cannot have both interface %s and its exclusion %s" +msgstr "Оба и интерфейс %s и его исключение %s нельзя" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:317 msgid "Capabilities" msgstr "Возможности" -#: htdocs/luci-static/resources/view/lldpd/status.js:44 -#: htdocs/luci-static/resources/view/lldpd/status.js:63 -#: htdocs/luci-static/resources/view/lldpd/status.js:682 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:44 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:63 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:679 msgid "Collecting data..." msgstr "Сбор данных..." -#: htdocs/luci-static/resources/view/lldpd/config.js:243 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:331 msgid "Communication Device Endpoints (Class III)" msgstr "Communication Device Endpoints (класс III)" -#: htdocs/luci-static/resources/view/lldpd/status.js:59 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:182 +msgid "" +"Defaults to the first IPv4 and IPv6. If an exact IP address is provided, it " +"is used as a management address without any check. To blacklist IPv6 " +"addresses, use !*:*." +msgstr "" +"Если не указано, используется первый IPv4 и первый IPv6 адреса. Если указан " +"конкретный IP-адрес, он будет использован как адрес управления без какой-" +"либо проверки. Если вы хотите занести в черный список IPv6-адреса, вы можете " +"использовать шаблон !*:*." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:59 msgid "Delete count" msgstr "Удалено" -#: htdocs/luci-static/resources/view/lldpd/status.js:271 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:271 msgid "Description" msgstr "Описание" -#: htdocs/luci-static/resources/view/lldpd/config.js:250 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:226 +msgid "" +"Determines the transmitted packet TTL (== this value * transmit delay). The " +"default value is 4 ∴ the default TTL is 120 seconds." +msgstr "" +"Это значение используется для вычисления TTL переданных пакетов, которое " +"является произведением этого значения и задержки передачи. Значение по " +"умолчанию равно 4. Соответственно, значение TTL по умолчанию составляет 120 " +"секунд." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:381 msgid "Disable LLDP-MED inventory TLV transmission" msgstr "Отключить отправку инвентарной информации LLDP-MED TLV" -#: htdocs/luci-static/resources/view/lldpd/status.js:150 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:390 +msgid "Disable advertising of kernel release, version and machine" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:150 msgid "Disabled" msgstr "Отключено" -#: htdocs/luci-static/resources/view/lldpd/status.js:688 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:685 msgid "Discovered Neighbors" msgstr "Обнаруженные соседи" -#: htdocs/luci-static/resources/view/lldpd/status.js:39 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:39 msgid "Discovered chassis" msgstr "Обнаруженное шасси" -#: htdocs/luci-static/resources/view/lldpd/status.js:40 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:40 msgid "Discovered port" msgstr "Обнаруженный порт" -#: htdocs/luci-static/resources/lldpd.js:117 -msgid "E — enable filter" -msgstr "E — включить фильтр" - -#: htdocs/luci-static/resources/view/lldpd/config.js:392 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:531 msgid "EDP" msgstr "EDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:334 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:473 msgid "Enable CDP" msgstr "Включить CDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:394 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:533 msgid "Enable EDP" msgstr "Включить EDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:374 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:513 msgid "Enable FDP" msgstr "Включить FDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:312 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:451 msgid "Enable LLDP" msgstr "Включить LLDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:420 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:559 msgid "Enable SONMP" msgstr "Включить SONMP" -#: htdocs/luci-static/resources/view/lldpd/config.js:168 -msgid "Enable receive-only mode" -msgstr "Включить режим «только приём»" - -#: htdocs/luci-static/resources/view/lldpd/config.js:65 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:87 msgid "Enable service" msgstr "Включить службу" -#: htdocs/luci-static/resources/view/lldpd/config.js:335 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:474 msgid "" "Enable the support of CDP protocol to deal with Cisco routers that do not " "speak LLDP" @@ -132,7 +171,7 @@ msgstr "" "Включить поддержку протокола CDP для работы с маршрутизаторами Cisco, " "которые не имеют поддержки LLDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:395 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:534 msgid "" "Enable the support of EDP protocol to deal with Extreme routers and switches " "that do not speak LLDP." @@ -140,7 +179,7 @@ msgstr "" "Включить поддержку протокола EDP для работы с маршрутизаторами и " "коммутаторам Extreme, которые не имеют поддержки LLDP." -#: htdocs/luci-static/resources/view/lldpd/config.js:375 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:514 msgid "" "Enable the support of FDP protocol to deal with Foundry routers that do not " "speak LLDP" @@ -148,7 +187,7 @@ msgstr "" "Включить поддержку протокола FDP для работы с маршрутизаторами Foundry, " "которые не имеют поддержки LLDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:421 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:560 msgid "" "Enable the support of SONMP protocol to deal with Nortel routers and " "switches that do not speak LLDP." @@ -156,397 +195,396 @@ msgstr "" "Включить поддержку протокола SONMP для работы с маршрутизаторами и " "коммутаторами Nortel, которые не имеют поддержки LLDP." -#: htdocs/luci-static/resources/view/lldpd/config.js:372 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:458 +msgid "" +"Even when there is no LLDP peer detected but there is a peer speaking " +"another protocol detected." +msgstr "" +"Даже если соседей с поддержкой LLDP не обнаружено, но есть соседи, с " +"поддержкой другого протокола." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:511 msgid "FDP" msgstr "FDP" -#: htdocs/luci-static/resources/lldpd.js:170 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:160 msgid "Filter" msgstr "Фильтр" -#: htdocs/luci-static/resources/view/lldpd/config.js:267 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:406 msgid "Force port ID subtype" msgstr "Использовать в качестве ID порта" -#: htdocs/luci-static/resources/view/lldpd/config.js:358 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:497 msgid "Force sending CDPv2 packets" msgstr "Форсировать отправку CDPv2 пакетов" -#: htdocs/luci-static/resources/view/lldpd/config.js:318 -msgid "Force to send LLDP packets" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:457 +msgid "Force sending LLDP packets" msgstr "Форсировать отправку LLDP пакетов" -#: htdocs/luci-static/resources/view/lldpd/config.js:319 -msgid "" -"Force to send LLDP packets even when there is no LLDP peer detected but " -"there is a peer speaking another protocol detected. By default, LLDP packets " -"are sent when there is a peer speaking LLDP detected or when there is no " -"peer at all." -msgstr "" -"Принудительно отправлять пакеты LLDP, даже если соседей с поддержкой LLDP не " -"обнаружено, но есть соседи, с поддержкой другого протокола. По умолчанию " -"пакеты LLDP отправляются, когда обнаружен сосед с поддержкой LLDP или когда " -"вообще нет обнаруженных соседей." - -#: htdocs/luci-static/resources/view/lldpd/config.js:241 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:329 msgid "Generic Endpoint (Class I)" msgstr "Generic Endpoint (класс I)" -#: root/usr/share/rpcd/acl.d/luci-app-lldpd.json:18 +#: applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json:18 msgid "Grant access for LLDP configuration" msgstr "Предоставить доступ к конфигурации LLDP" -#: root/usr/share/rpcd/acl.d/luci-app-lldpd.json:3 +#: applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json:3 msgid "Grant access for LLDP status information" msgstr "Предоставить доступ к информации о состоянии LLDP" -#: htdocs/luci-static/resources/view/lldpd/status.js:274 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:128 +msgid "Host location" +msgstr "Местоположение хоста" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:274 msgid "ID" msgstr "ID" -#: htdocs/luci-static/resources/view/lldpd/status.js:275 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:275 msgid "ID type" msgstr "Тип ID" -#: htdocs/luci-static/resources/view/lldpd/status.js:114 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:114 msgid "IP address" msgstr "IP-адрес" -#: htdocs/luci-static/resources/view/lldpd/config.js:229 -msgid "" -"If the path to the socket is set, then LLDPd will enable an SNMP subagent " -"using AgentX protocol. This allows you to get information about local system " -"and remote systems through SNMP." -msgstr "" -"Если указан путь к сокету, то LLDPd включит SNMP агент, используя протокол " -"AgentX. Это позволяет получать информацию о локальной системе и удаленных " -"системах через SNMP." - -#: htdocs/luci-static/resources/lldpd.js:171 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:161 msgid "Incoming" msgstr "Входящие" -#: htdocs/luci-static/resources/view/lldpd/status.js:58 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:58 msgid "Insert count" msgstr "Обнаружено" -#: htdocs/luci-static/resources/view/lldpd/config.js:271 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:410 msgid "Interface MAC address" msgstr "MAC-адрес интерфейса" -#: htdocs/luci-static/resources/view/lldpd/status.js:689 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:686 msgid "Interface Statistics" msgstr "Статистика интерфейсов" -#: htdocs/luci-static/resources/view/lldpd/config.js:272 -#: htdocs/luci-static/resources/view/lldpd/status.js:110 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:411 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:110 msgid "Interface name" msgstr "Имя интерфейса" -#: htdocs/luci-static/resources/view/lldpd/config.js:310 -#: root/usr/share/luci/menu.d/luci-app-lldpd.json:3 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:391 +msgid "" +"Kernel name (ie: Linux) will still be shared, and Inventory software version " +"will be set to %s." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:449 +#: applications/luci-app-lldpd/root/usr/share/luci/menu.d/luci-app-lldpd.json:3 msgid "LLDP" msgstr "LLDP" -#: htdocs/luci-static/resources/view/lldpd/status.js:672 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:669 msgid "LLDP Status" msgstr "Состояние LLDP" -#: htdocs/luci-static/resources/view/lldpd/config.js:239 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:327 msgid "LLDP-MED device class" msgstr "Класс устройства LLDP-MED" -#: htdocs/luci-static/resources/lldpd.js:19 -msgid "LLDPd LuCI application (version %s)" -msgstr "LuCI приложение управления LLDPd (версия %s)" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:369 +msgid "LLDP-MED fast-start" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:373 +msgid "LLDP-MED fast-start tx-interval" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:338 +msgid "LLDP-MED policy" +msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:455 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:417 +msgid "LLDPDU destination MAC" +msgstr "MAC-адрес назначения, используемый для отправки LLDPDU." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:594 msgid "LLDPd Settings" msgstr "Настройки LLDPd" -#: htdocs/luci-static/resources/view/lldpd/config.js:456 -msgid "" -"LLDPd is a implementation of IEEE 802.1ab (LLDP)." -msgstr "" -"LLDPd это программная реализация стандарта IEEE 802.1ab (LLDP)." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:595 +msgid "LLDPd is an implementation of IEEE 802.1ab" +msgstr "LLDPd это программная реализация стандарта IEEE 802.1ab" -#: htdocs/luci-static/resources/view/lldpd/config.js:251 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:382 msgid "" "LLDPd will still receive (and publish using SNMP if enabled) those LLDP-MED " -"TLV but will not send them. Use this option if you don't want to transmit " -"sensible information like serial numbers." +"TLV but will not send them. Use this option if you do not want to transmit " +"sensitive information like serial numbers." msgstr "" "LLDPd будет по прежнему получать (и публиковать, используя SNMP, если он " "включен) информацию LLDP-MED TLV, но не будет отправлять. Используйте эту " "опцию, если вы не хотите передавать важную информацию, такую как серийные " "номера." -#: htdocs/luci-static/resources/view/lldpd/status.js:677 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:247 +msgid "LLDPd won't send any frames; only listen to neighbors." +msgstr "" +"С этой опцией LLDPd не будет отправлять какие-либо пакеты. LLDPd будет " +"только прослушивать сеть для обнаружения соседей." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:674 msgid "Local Chassis" msgstr "Локальное шасси" -#: htdocs/luci-static/resources/view/lldpd/status.js:112 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:112 msgid "Local ID" msgstr "Локально заданный ID" -#: htdocs/luci-static/resources/view/lldpd/status.js:37 -#: htdocs/luci-static/resources/view/lldpd/status.js:50 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:37 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:50 msgid "Local interface" msgstr "Локальный интерфейс" -#: htdocs/luci-static/resources/view/lldpd/status.js:108 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:108 msgid "MAC address" msgstr "MAC-адрес" -#: htdocs/luci-static/resources/view/lldpd/status.js:231 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:231 msgid "MFS" msgstr "MFS" -#: htdocs/luci-static/resources/view/lldpd/status.js:293 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:293 msgid "Management IP(s)" msgstr "IP-адреса" -#: htdocs/luci-static/resources/view/lldpd/config.js:114 -msgid "Management addresses of this system" -msgstr "Адреса управления данной системы" - -#: htdocs/luci-static/resources/view/lldpd/config.js:242 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:330 msgid "Media Endpoint (Class II)" msgstr "Media Endpoint (класс II)" -#: htdocs/luci-static/resources/view/lldpd/config.js:139 -#: htdocs/luci-static/resources/view/lldpd/config.js:160 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:219 +msgid "Must be a greater than zero number optionally suffixed with \"ms\"" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:238 msgid "Must be a number" msgstr "Должно быть числом" -#: htdocs/luci-static/resources/lldpd.js:119 -msgid "N — keep only one neighbor" -msgstr "N — хранить только одного соседа" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:137 +msgid "Must start: 'coordinate ...', 'address ...' or 'elin ...'" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:363 +msgid "Must start: application ..." +msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:195 -#: htdocs/luci-static/resources/view/lldpd/status.js:206 -#: htdocs/luci-static/resources/view/lldpd/status.js:268 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:195 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:206 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:268 msgid "Name" msgstr "Имя" -#: htdocs/luci-static/resources/view/lldpd/config.js:244 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:332 msgid "Network Connectivity Device (Class IV)" msgstr "Network Connectivity Device (класс IV)" -#: htdocs/luci-static/resources/view/lldpd/config.js:442 -msgid "Network Interfaces" -msgstr "Сетевые интерфейсы" - -#: htdocs/luci-static/resources/view/lldpd/config.js:189 -msgid "Network interfaces" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:269 +msgid "Network IO" msgstr "Сетевые интерфейсы" -#: htdocs/luci-static/resources/view/lldpd/config.js:202 -msgid "Network interfaces for chassis ID computing" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:285 +msgid "Network IO for chassis ID" msgstr "Сетевые интерфейсы, используемые для вычисления ID шасси (chassis ID)" -#: htdocs/luci-static/resources/view/lldpd/status.js:604 -#: htdocs/luci-static/resources/view/lldpd/status.js:661 -#: htdocs/luci-static/resources/view/lldpd/status.js:665 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:581 +msgid "Network Interfaces" +msgstr "Сетевые интерфейсы" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:601 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:658 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:662 msgid "No data to display" msgstr "Нет данных для отображения" -#: htdocs/luci-static/resources/view/lldpd/config.js:458 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:597 msgid "On this page you may configure LLDPd parameters." msgstr "На данной странице можно настроить параметры LLDPd." -#: htdocs/luci-static/resources/view/lldpd/config.js:345 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:484 msgid "Only CDPv2" msgstr "Только CDPv2" -#: htdocs/luci-static/resources/lldpd.js:172 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:162 msgid "Outgoing" msgstr "Исходящие" -#: htdocs/luci-static/resources/view/lldpd/config.js:93 -msgid "Override system description with the provided description." -msgstr "Переопределить описание системы заданным значением." - -#: htdocs/luci-static/resources/view/lldpd/config.js:100 -msgid "Override system hostname with the provided value." -msgstr "Переопределить имя системы заданным значением." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:115 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:122 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:146 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:157 +msgid "Override %s." +msgstr "Переопределить %s." -#: htdocs/luci-static/resources/view/lldpd/config.js:107 -msgid "" -"Override the platform description with the provided value. The default " -"description is the kernel name (Linux)." -msgstr "" -"Переопределить описание платформы заданным значением. По умолчанию " -"используется имя используемого ядра (Linux)." - -#: htdocs/luci-static/resources/lldpd.js:118 -msgid "P — keep only one protocol" -msgstr "P — хранить только один протокол" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:129 +msgid "Override the announced location of the host." +msgstr "Переопределите объявленное местоположение хоста." -#: htdocs/luci-static/resources/view/lldpd/status.js:214 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:214 msgid "Port ID" msgstr "ID порта" -#: htdocs/luci-static/resources/view/lldpd/status.js:217 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:217 msgid "Port ID type" msgstr "Тип ID порта" -#: htdocs/luci-static/resources/view/lldpd/status.js:222 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:222 msgid "Port description" msgstr "Описание порта" -#: htdocs/luci-static/resources/view/lldpd/status.js:38 -#: htdocs/luci-static/resources/view/lldpd/status.js:51 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:38 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:51 msgid "Protocol" msgstr "Протокол" -#: htdocs/luci-static/resources/view/lldpd/config.js:448 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:587 msgid "Protocols Support" msgstr "Поддержка протоколов" -#: htdocs/luci-static/resources/view/lldpd/status.js:54 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:246 +msgid "Receive-only mode" +msgstr "Режим «только приём»" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:54 msgid "Rx" msgstr "Rx" -#: htdocs/luci-static/resources/view/lldpd/status.js:144 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:144 msgid "Rx and Tx" msgstr "Rx и Tx" -#: htdocs/luci-static/resources/view/lldpd/status.js:146 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:146 msgid "Rx only" msgstr "Только Rx" -#: htdocs/luci-static/resources/view/lldpd/status.js:56 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:56 msgid "Rx unrecognized" msgstr "Rx (не распознано)" -#: htdocs/luci-static/resources/view/lldpd/config.js:228 -msgid "SNMP agentX socket path" -msgstr "Путь к сокету SNMP agentX" - -#: htdocs/luci-static/resources/view/lldpd/config.js:418 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:557 msgid "SONMP (NTDP, NDP, BNMP, BDP)" msgstr "SONMP (NTDP, NDP, BNMP, BDP)" -#: htdocs/luci-static/resources/view/lldpd/config.js:351 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:33 +msgid "See syntax here." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:490 msgid "Send CDP packets even if no CDP peer detected" msgstr "Отправлять CDP пакеты даже если не обнаружено соседей с CDP протоколом" -#: htdocs/luci-static/resources/view/lldpd/config.js:402 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:541 msgid "Send EDP packets even if no EDP peer detected" msgstr "Отправлять EDP пакеты даже если не обнаружено соседей с EDP протоколом" -#: htdocs/luci-static/resources/view/lldpd/config.js:382 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:521 msgid "Send FDP packets even if no FDP peer detected" msgstr "Отправлять FDP пакеты даже если не обнаружено соседей с FDP протоколом" -#: htdocs/luci-static/resources/view/lldpd/config.js:428 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:567 msgid "Send SONMP packets even if no SONMP peer detected" msgstr "" "Отправлять SONMP пакеты даже если не обнаружено соседей с SONMP протоколом" -#: root/usr/share/luci/menu.d/luci-app-lldpd.json:28 +#: applications/luci-app-lldpd/root/usr/share/luci/menu.d/luci-app-lldpd.json:28 msgid "Settings" msgstr "Настройки" -#: htdocs/luci-static/resources/view/lldpd/config.js:259 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:398 msgid "Specify the behaviour when detecting multiple neighbors" msgstr "Поведение при обнаружении нескольких соседей" -#: htdocs/luci-static/resources/view/lldpd/config.js:115 -msgid "" -"Specify the management addresses of this system. If not specified, the first " -"IPv4 and the first IPv6 are used. If an exact IP address is provided, it is " -"used as a management address without any check. If you want to blacklist " -"IPv6 addresses, you can use !*:*. See more details about " -"available patterns here." -msgstr "" -"Адреса управления данной системой. Если не указано, используется первый IPv4 " -"и первый IPv6 адреса. Если указан конкретный IP-адрес, он будет использован " -"как адрес управления без какой-либо проверки. Если вы хотите занести в " -"черный список IPv6-адреса, вы можете использовать шаблон ! *: *. Подробнее о доступных шаблонах читайте здесь." - -#: htdocs/luci-static/resources/view/lldpd/config.js:190 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:270 msgid "" -"Specify which interface to listen and send LLDPDU to. If no interfaces is " -"specified, LLDPd will use all available physical interfaces." +"Specify which interface (not) to listen upon and send LLDPDU from. Absent " +"any value, LLDPd uses all available physical interfaces." msgstr "" "Укажите какие интерфейсы должны прослушивать и отправлять LLDPDU. Если " "интерфейсы не указаны, LLDPd будет использовать все доступные физические " "интерфейсы." -#: htdocs/luci-static/resources/view/lldpd/config.js:203 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:286 msgid "" -"Specify which interfaces to use for computing chassis ID. If no interfaces " -"is specified, all interfaces are considered. LLDPd will take the first MAC " -"address from all the considered interfaces to compute the chassis ID." +"Specify which interfaces (not) to use for computing chassis ID. Absent any " +"value, all interfaces are considered. LLDPd takes the first MAC address from " +"all the considered interfaces to compute the chassis ID." msgstr "" "Укажите какие интерфейсы необходимо использовать для вычисления " "идентификатора шасси (chassis ID). Если интерфейсы не указаны, будут " "иcпользованы все интерфейсы. LLDPd получит первый MAC-адрес из всех " "доступных интерфейсов для вычисления ID шасси." -#: root/usr/share/luci/menu.d/luci-app-lldpd.json:16 +#: applications/luci-app-lldpd/root/usr/share/luci/menu.d/luci-app-lldpd.json:16 msgid "Status" msgstr "Состояние" -#: htdocs/luci-static/resources/view/lldpd/config.js:92 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:211 +msgid "Suffix %s for millisecond values." +msgstr "Прибавляй суффикс %s для значений миллисекунд." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:156 +msgid "System capabilities" +msgstr "Системные возможности" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:151 +msgid "System capability advertisements" +msgstr "Объявления системных возможност" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:114 msgid "System description" msgstr "Описание системы" -#: htdocs/luci-static/resources/view/lldpd/config.js:99 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:121 msgid "System hostname" msgstr "Имя системы" -#: htdocs/luci-static/resources/view/lldpd/config.js:106 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:181 +msgid "System management IO" +msgstr "Адреса управления данной системы" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:175 +msgid "System management IO advertisements" +msgstr "Объявления адресов управления данной системы" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:145 msgid "System platform description" msgstr "Описание платформы" -#: htdocs/luci-static/resources/view/lldpd/status.js:226 -#: htdocs/luci-static/resources/view/lldpd/status.js:228 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:226 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:228 msgid "TTL" msgstr "TTL" -#: htdocs/luci-static/resources/view/lldpd/config.js:260 -msgid "" -"The default filter is 15. For more details see \"FILTERING NEIGHBORS\" " -"section here." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:147 +msgid "The default description is the kernel name (Linux)." +msgstr "По умолчанию используется имя используемого ядра (Linux)." + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:399 +msgid "The default filter is 15. Refer to "FILTERING NEIGHBORS"." msgstr "" "По умолчанию используется фильтр 15. Более подробную информацию о данной " -"опции можно посмотреть в разделе «FILTERING NEIGHBORS» здесь." - -#: htdocs/luci-static/resources/view/lldpd/config.js:278 -msgid "The destination MAC address used to send LLDPDU" -msgstr "MAC-адрес назначения, используемый для отправки LLDPDU" +"опции можно посмотреть в разделе «FILTERING NEIGHBORS»." -#: htdocs/luci-static/resources/view/lldpd/config.js:279 -msgid "" -"The destination MAC address used to send LLDPDU allows an agent to control " -"the propagation of LLDPDUs. By default, the 01:80:c2:00:00:0e " -"MAC address is used and limit the propagation of the LLDPDU to the nearest " -"bridge." -msgstr "" -"MAC-адрес назначения, используемый для отправки LLDPDU. Данный параметр " -"позволяет агенту контролировать распространение LLDPDU. По умолчанию " -"используется MAC-адрес 01:80:c2:00:00:0e и ограничивает " -"распространение LLDPDU до ближайшего моста." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:158 +msgid "The default is derived from kernel information." +msgstr "Значение по умолчанию получено из информации о ядре." -#: htdocs/luci-static/resources/view/lldpd/config.js:128 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:208 msgid "" -"The transmit delay is the delay between two transmissions of LLDP PDU. The " -"default value is 30 seconds." +"The delay between transmissions of LLDP PDU. The default value is 30 seconds." msgstr "" "Задержка между двумя передачами LLDP PDU. Значение по умолчанию составляет " "30 секунд." -#: htdocs/luci-static/resources/view/lldpd/status.js:673 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:670 msgid "" "This page allows you to see discovered LLDP neighbors, local interfaces " "statistics and local chassis information." @@ -554,59 +592,36 @@ msgstr "" "На данной странице вы можете посмотреть таблицу обнаруженных соседей LLDP, " "статистику локальных интерфейсов и информацию о локальном шасси." -#: htdocs/luci-static/resources/view/lldpd/config.js:148 -msgid "" -"This value is used to compute the TTL of transmitted packets which is the " -"product of this value and of the transmit delay. The default value is 4 and " -"therefore the default TTL is 120 seconds." -msgstr "" -"Это значение используется для вычисления TTL переданных пакетов, которое " -"является произведением этого значения и задержки передачи. Значение по " -"умолчанию равно 4. Соответственно, значение TTL по умолчанию составляет 120 " -"секунд." - -#: htdocs/luci-static/resources/view/lldpd/config.js:127 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:207 msgid "Transmit delay" msgstr "Задержка отправки" -#: htdocs/luci-static/resources/view/lldpd/config.js:141 -msgid "Transmit delay must be greater than 0" -msgstr "Значение задержки отправки должно быть больше 0" - -#: htdocs/luci-static/resources/view/lldpd/config.js:147 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:225 msgid "Transmit hold value" msgstr "Значение «transmit hold»" -#: htdocs/luci-static/resources/view/lldpd/config.js:162 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:240 msgid "Transmit hold value must be greater than 0" msgstr "Значение «transmit hold» должно быть больше 0" -#: htdocs/luci-static/resources/view/lldpd/status.js:53 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:53 msgid "Tx" msgstr "Tx" -#: htdocs/luci-static/resources/view/lldpd/status.js:55 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:55 msgid "Tx discarded" msgstr "Tx (отброшено)" -#: htdocs/luci-static/resources/view/lldpd/status.js:148 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:148 msgid "Tx only" msgstr "Только Tx" -#: htdocs/luci-static/resources/view/lldpd/status.js:152 -#: htdocs/luci-static/resources/view/lldpd/status.js:260 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:152 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:260 msgid "Unknown" msgstr "Неизвестно" -#: htdocs/luci-static/resources/view/lldpd/config.js:169 -msgid "" -"With this option, LLDPd will not send any frames. It will only listen to " -"neighbors." -msgstr "" -"С этой опцией LLDPd не будет отправлять какие-либо пакеты. LLDPd будет " -"только прослушивать сеть для обнаружения соседей." - -#: htdocs/luci-static/resources/view/lldpd/config.js:268 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:407 msgid "" "With this option, you can force the port identifier to be the interface name " "or the MAC address." @@ -614,16 +629,24 @@ msgstr "" "Данная настройка позволяет принудительно использовать в качестве " "идентификатор порта имя интерфейса или MAC-адрес." -#: htdocs/luci-static/resources/view/lldpd/status.js:305 -#: htdocs/luci-static/resources/view/lldpd/status.js:314 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:305 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:314 msgid "disabled" msgstr "выключено" -#: htdocs/luci-static/resources/view/lldpd/status.js:305 -#: htdocs/luci-static/resources/view/lldpd/status.js:314 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:44 +msgid "enable filter" +msgstr "включить фильтр" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:305 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:314 msgid "enabled" msgstr "включено" -#: htdocs/luci-static/resources/lldpd.js:21 -msgid "© 2018–2021, Tano Systems LLC, Anton Kikin" -msgstr "© 2018–2021, ООО «Тано Системс», Антон Кикин" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:46 +msgid "keep only one neighbor" +msgstr "хранить только одного соседа" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:45 +msgid "keep only one protocol" +msgstr "хранить только один протокол" diff --git a/applications/luci-app-lldpd/po/templates/lldpd.pot b/applications/luci-app-lldpd/po/templates/lldpd.pot index de98481c61..e75159675a 100644 --- a/applications/luci-app-lldpd/po/templates/lldpd.pot +++ b/applications/luci-app-lldpd/po/templates/lldpd.pot @@ -1,561 +1,595 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: htdocs/luci-static/resources/view/lldpd/status.js:52 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:52 msgid "Administrative Status" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:445 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:584 msgid "Advanced Settings" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:196 -#: htdocs/luci-static/resources/view/lldpd/status.js:207 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:196 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:207 msgid "Age" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:57 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:57 msgid "Ageout count" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:439 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:418 +msgid "" +"Allows an agent to control the propagation of LLDPDUs. By default, the MAC " +"address %s is used and limits the propagation of the LLDPDU to the nearest " +"bridge." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:578 msgid "Basic Settings" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:332 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:460 +msgid "" +"By default, LLDP packets are sent when there is a peer speaking LLDP " +"detected or when there is no peer at all." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:471 msgid "CDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:342 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:481 msgid "CDP version" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:344 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:483 msgid "CDPv1 and CDPv2" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:317 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:37 +msgid "Cannot have both interface %s and its exclusion %s" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:317 msgid "Capabilities" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:44 -#: htdocs/luci-static/resources/view/lldpd/status.js:63 -#: htdocs/luci-static/resources/view/lldpd/status.js:682 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:44 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:63 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:679 msgid "Collecting data..." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:243 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:331 msgid "Communication Device Endpoints (Class III)" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:59 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:182 +msgid "" +"Defaults to the first IPv4 and IPv6. If an exact IP address is provided, it " +"is used as a management address without any check. To blacklist IPv6 " +"addresses, use !*:*." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:59 msgid "Delete count" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:271 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:271 msgid "Description" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:250 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:226 +msgid "" +"Determines the transmitted packet TTL (== this value * transmit delay). The " +"default value is 4 ∴ the default TTL is 120 seconds." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:381 msgid "Disable LLDP-MED inventory TLV transmission" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:150 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:390 +msgid "Disable advertising of kernel release, version and machine" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:150 msgid "Disabled" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:688 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:685 msgid "Discovered Neighbors" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:39 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:39 msgid "Discovered chassis" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:40 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:40 msgid "Discovered port" msgstr "" -#: htdocs/luci-static/resources/lldpd.js:117 -msgid "E — enable filter" -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/config.js:392 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:531 msgid "EDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:334 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:473 msgid "Enable CDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:394 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:533 msgid "Enable EDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:374 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:513 msgid "Enable FDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:312 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:451 msgid "Enable LLDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:420 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:559 msgid "Enable SONMP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:168 -msgid "Enable receive-only mode" -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/config.js:65 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:87 msgid "Enable service" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:335 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:474 msgid "" "Enable the support of CDP protocol to deal with Cisco routers that do not " "speak LLDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:395 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:534 msgid "" "Enable the support of EDP protocol to deal with Extreme routers and switches " "that do not speak LLDP." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:375 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:514 msgid "" "Enable the support of FDP protocol to deal with Foundry routers that do not " "speak LLDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:421 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:560 msgid "" "Enable the support of SONMP protocol to deal with Nortel routers and " "switches that do not speak LLDP." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:372 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:458 +msgid "" +"Even when there is no LLDP peer detected but there is a peer speaking " +"another protocol detected." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:511 msgid "FDP" msgstr "" -#: htdocs/luci-static/resources/lldpd.js:170 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:160 msgid "Filter" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:267 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:406 msgid "Force port ID subtype" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:358 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:497 msgid "Force sending CDPv2 packets" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:318 -msgid "Force to send LLDP packets" -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/config.js:319 -msgid "" -"Force to send LLDP packets even when there is no LLDP peer detected but " -"there is a peer speaking another protocol detected. By default, LLDP packets " -"are sent when there is a peer speaking LLDP detected or when there is no " -"peer at all." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:457 +msgid "Force sending LLDP packets" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:241 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:329 msgid "Generic Endpoint (Class I)" msgstr "" -#: root/usr/share/rpcd/acl.d/luci-app-lldpd.json:18 +#: applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json:18 msgid "Grant access for LLDP configuration" msgstr "" -#: root/usr/share/rpcd/acl.d/luci-app-lldpd.json:3 +#: applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json:3 msgid "Grant access for LLDP status information" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:274 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:128 +msgid "Host location" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:274 msgid "ID" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:275 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:275 msgid "ID type" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:114 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:114 msgid "IP address" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:229 -msgid "" -"If the path to the socket is set, then LLDPd will enable an SNMP subagent " -"using AgentX protocol. This allows you to get information about local system " -"and remote systems through SNMP." -msgstr "" - -#: htdocs/luci-static/resources/lldpd.js:171 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:161 msgid "Incoming" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:58 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:58 msgid "Insert count" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:271 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:410 msgid "Interface MAC address" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:689 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:686 msgid "Interface Statistics" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:272 -#: htdocs/luci-static/resources/view/lldpd/status.js:110 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:411 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:110 msgid "Interface name" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:310 -#: root/usr/share/luci/menu.d/luci-app-lldpd.json:3 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:391 +msgid "" +"Kernel name (ie: Linux) will still be shared, and Inventory software version " +"will be set to %s." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:449 +#: applications/luci-app-lldpd/root/usr/share/luci/menu.d/luci-app-lldpd.json:3 msgid "LLDP" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:672 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:669 msgid "LLDP Status" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:239 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:327 msgid "LLDP-MED device class" msgstr "" -#: htdocs/luci-static/resources/lldpd.js:19 -msgid "LLDPd LuCI application (version %s)" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:369 +msgid "LLDP-MED fast-start" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:373 +msgid "LLDP-MED fast-start tx-interval" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:338 +msgid "LLDP-MED policy" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:417 +msgid "LLDPDU destination MAC" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:455 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:594 msgid "LLDPd Settings" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:456 -msgid "" -"LLDPd is a implementation of IEEE 802.1ab (LLDP)." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:595 +msgid "LLDPd is an implementation of IEEE 802.1ab" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:251 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:382 msgid "" "LLDPd will still receive (and publish using SNMP if enabled) those LLDP-MED " -"TLV but will not send them. Use this option if you don't want to transmit " -"sensible information like serial numbers." +"TLV but will not send them. Use this option if you do not want to transmit " +"sensitive information like serial numbers." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:677 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:247 +msgid "LLDPd won't send any frames; only listen to neighbors." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:674 msgid "Local Chassis" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:112 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:112 msgid "Local ID" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:37 -#: htdocs/luci-static/resources/view/lldpd/status.js:50 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:37 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:50 msgid "Local interface" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:108 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:108 msgid "MAC address" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:231 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:231 msgid "MFS" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:293 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:293 msgid "Management IP(s)" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:114 -msgid "Management addresses of this system" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:330 +msgid "Media Endpoint (Class II)" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:242 -msgid "Media Endpoint (Class II)" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:219 +msgid "Must be a greater than zero number optionally suffixed with \"ms\"" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:139 -#: htdocs/luci-static/resources/view/lldpd/config.js:160 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:238 msgid "Must be a number" msgstr "" -#: htdocs/luci-static/resources/lldpd.js:119 -msgid "N — keep only one neighbor" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:137 +msgid "Must start: 'coordinate ...', 'address ...' or 'elin ...'" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:195 -#: htdocs/luci-static/resources/view/lldpd/status.js:206 -#: htdocs/luci-static/resources/view/lldpd/status.js:268 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:363 +msgid "Must start: application ..." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:195 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:206 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:268 msgid "Name" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:244 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:332 msgid "Network Connectivity Device (Class IV)" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:442 -msgid "Network Interfaces" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:269 +msgid "Network IO" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:189 -msgid "Network interfaces" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:285 +msgid "Network IO for chassis ID" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:202 -msgid "Network interfaces for chassis ID computing" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:581 +msgid "Network Interfaces" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:604 -#: htdocs/luci-static/resources/view/lldpd/status.js:661 -#: htdocs/luci-static/resources/view/lldpd/status.js:665 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:601 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:658 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:662 msgid "No data to display" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:458 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:597 msgid "On this page you may configure LLDPd parameters." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:345 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:484 msgid "Only CDPv2" msgstr "" -#: htdocs/luci-static/resources/lldpd.js:172 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:162 msgid "Outgoing" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:93 -msgid "Override system description with the provided description." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:115 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:122 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:146 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:157 +msgid "Override %s." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:100 -msgid "Override system hostname with the provided value." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:129 +msgid "Override the announced location of the host." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:107 -msgid "" -"Override the platform description with the provided value. The default " -"description is the kernel name (Linux)." -msgstr "" - -#: htdocs/luci-static/resources/lldpd.js:118 -msgid "P — keep only one protocol" -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/status.js:214 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:214 msgid "Port ID" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:217 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:217 msgid "Port ID type" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:222 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:222 msgid "Port description" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:38 -#: htdocs/luci-static/resources/view/lldpd/status.js:51 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:38 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:51 msgid "Protocol" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:448 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:587 msgid "Protocols Support" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:54 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:246 +msgid "Receive-only mode" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:54 msgid "Rx" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:144 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:144 msgid "Rx and Tx" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:146 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:146 msgid "Rx only" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:56 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:56 msgid "Rx unrecognized" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:228 -msgid "SNMP agentX socket path" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:557 +msgid "SONMP (NTDP, NDP, BNMP, BDP)" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:418 -msgid "SONMP (NTDP, NDP, BNMP, BDP)" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:33 +msgid "See syntax here." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:351 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:490 msgid "Send CDP packets even if no CDP peer detected" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:402 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:541 msgid "Send EDP packets even if no EDP peer detected" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:382 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:521 msgid "Send FDP packets even if no FDP peer detected" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:428 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:567 msgid "Send SONMP packets even if no SONMP peer detected" msgstr "" -#: root/usr/share/luci/menu.d/luci-app-lldpd.json:28 +#: applications/luci-app-lldpd/root/usr/share/luci/menu.d/luci-app-lldpd.json:28 msgid "Settings" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:259 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:398 msgid "Specify the behaviour when detecting multiple neighbors" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:115 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:270 msgid "" -"Specify the management addresses of this system. If not specified, the first " -"IPv4 and the first IPv6 are used. If an exact IP address is provided, it is " -"used as a management address without any check. If you want to blacklist " -"IPv6 addresses, you can use !*:*. See more details about " -"available patterns here." +"Specify which interface (not) to listen upon and send LLDPDU from. Absent " +"any value, LLDPd uses all available physical interfaces." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:190 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:286 msgid "" -"Specify which interface to listen and send LLDPDU to. If no interfaces is " -"specified, LLDPd will use all available physical interfaces." +"Specify which interfaces (not) to use for computing chassis ID. Absent any " +"value, all interfaces are considered. LLDPd takes the first MAC address from " +"all the considered interfaces to compute the chassis ID." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:203 -msgid "" -"Specify which interfaces to use for computing chassis ID. If no interfaces " -"is specified, all interfaces are considered. LLDPd will take the first MAC " -"address from all the considered interfaces to compute the chassis ID." +#: applications/luci-app-lldpd/root/usr/share/luci/menu.d/luci-app-lldpd.json:16 +msgid "Status" msgstr "" -#: root/usr/share/luci/menu.d/luci-app-lldpd.json:16 -msgid "Status" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:211 +msgid "Suffix %s for millisecond values." +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:156 +msgid "System capabilities" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:92 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:151 +msgid "System capability advertisements" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:114 msgid "System description" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:99 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:121 msgid "System hostname" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:106 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:181 +msgid "System management IO" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:175 +msgid "System management IO advertisements" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:145 msgid "System platform description" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:226 -#: htdocs/luci-static/resources/view/lldpd/status.js:228 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:226 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:228 msgid "TTL" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:260 -msgid "" -"The default filter is 15. For more details see \"FILTERING NEIGHBORS\" " -"section here." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:147 +msgid "The default description is the kernel name (Linux)." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:278 -msgid "The destination MAC address used to send LLDPDU" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:399 +msgid "The default filter is 15. Refer to "FILTERING NEIGHBORS"." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:279 -msgid "" -"The destination MAC address used to send LLDPDU allows an agent to control " -"the propagation of LLDPDUs. By default, the 01:80:c2:00:00:0e " -"MAC address is used and limit the propagation of the LLDPDU to the nearest " -"bridge." +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:158 +msgid "The default is derived from kernel information." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:128 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:208 msgid "" -"The transmit delay is the delay between two transmissions of LLDP PDU. The " -"default value is 30 seconds." +"The delay between transmissions of LLDP PDU. The default value is 30 seconds." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:673 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:670 msgid "" "This page allows you to see discovered LLDP neighbors, local interfaces " "statistics and local chassis information." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:148 -msgid "" -"This value is used to compute the TTL of transmitted packets which is the " -"product of this value and of the transmit delay. The default value is 4 and " -"therefore the default TTL is 120 seconds." -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/config.js:127 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:207 msgid "Transmit delay" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:141 -msgid "Transmit delay must be greater than 0" -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/config.js:147 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:225 msgid "Transmit hold value" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:162 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:240 msgid "Transmit hold value must be greater than 0" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:53 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:53 msgid "Tx" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:55 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:55 msgid "Tx discarded" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:148 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:148 msgid "Tx only" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:152 -#: htdocs/luci-static/resources/view/lldpd/status.js:260 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:152 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:260 msgid "Unknown" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/config.js:169 -msgid "" -"With this option, LLDPd will not send any frames. It will only listen to " -"neighbors." -msgstr "" - -#: htdocs/luci-static/resources/view/lldpd/config.js:268 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/config.js:407 msgid "" "With this option, you can force the port identifier to be the interface name " "or the MAC address." msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:305 -#: htdocs/luci-static/resources/view/lldpd/status.js:314 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:305 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:314 msgid "disabled" msgstr "" -#: htdocs/luci-static/resources/view/lldpd/status.js:305 -#: htdocs/luci-static/resources/view/lldpd/status.js:314 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:44 +msgid "enable filter" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:305 +#: applications/luci-app-lldpd/htdocs/luci-static/resources/view/lldpd/status.js:314 msgid "enabled" msgstr "" -#: htdocs/luci-static/resources/lldpd.js:21 -msgid "© 2018–2021, Tano Systems LLC, Anton Kikin" +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:46 +msgid "keep only one neighbor" +msgstr "" + +#: applications/luci-app-lldpd/htdocs/luci-static/resources/lldpd.js:45 +msgid "keep only one protocol" msgstr "" diff --git a/applications/luci-app-lldpd/root/etc/uci-defaults/40_luci-lldpd b/applications/luci-app-lldpd/root/etc/uci-defaults/40_luci-lldpd deleted file mode 100644 index d7bfee271d..0000000000 --- a/applications/luci-app-lldpd/root/etc/uci-defaults/40_luci-lldpd +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json b/applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json index d79d7bd3c6..240cd24779 100644 --- a/applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json +++ b/applications/luci-app-lldpd/root/usr/share/rpcd/acl.d/luci-app-lldpd.json @@ -3,7 +3,7 @@ "description": "Grant access for LLDP status information", "read": { "ubus": { - "lldpd": [ + "luci.lldpd": [ "getStatus" ] }, @@ -18,27 +18,14 @@ "description": "Grant access for LLDP configuration", "read": { "uci": [ - "lldpd", - "luci", - "network", - "wireless", - "firewall" + "lldpd" ], "ubus": { + "luci.lldpd": [ + "getStatus" + ], "luci": [ "getInitList" - ], - "luci-rpc": [ - "getBoardJSON", - "getHostHints", - "getNetworkDevices", - "getWirelessDevices" - ], - "network": [ - "get_proto_handlers" - ], - "network.interface": [ - "dump" ] } }, diff --git a/applications/luci-app-lldpd/root/usr/share/rpcd/ucode/lldpd b/applications/luci-app-lldpd/root/usr/share/rpcd/ucode/lldpd deleted file mode 100644 index a35376f871..0000000000 --- a/applications/luci-app-lldpd/root/usr/share/rpcd/ucode/lldpd +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -import { popen } from 'fs'; - -function lldpcli_json(section) { - return json(popen(`lldpcli -f json0 show ${section}`, 'r')); -} - -return { - lldpd: { - getStatus: { - call: function() { - return { - statistics: lldpcli_json("statistics"), - neighbors: lldpcli_json("neighbors details"), - interfaces: lldpcli_json("interfaces"), - chassis: lldpcli_json("chassis") - }; - } - } - } -}; diff --git a/applications/luci-app-lldpd/root/usr/share/rpcd/ucode/luci.lldpd b/applications/luci-app-lldpd/root/usr/share/rpcd/ucode/luci.lldpd new file mode 100644 index 0000000000..fff7ac55f3 --- /dev/null +++ b/applications/luci-app-lldpd/root/usr/share/rpcd/ucode/luci.lldpd @@ -0,0 +1,22 @@ +'use strict'; + +import { popen } from 'fs'; + +function lldpcli_json(section) { + return json(popen(`lldpcli -f json0 show ${section}`, 'r')); +} + +return { + 'luci.lldpd': { + getStatus: { + call: function() { + return { + statistics: lldpcli_json("statistics"), + neighbors: lldpcli_json("neighbors details"), + interfaces: lldpcli_json("interfaces"), + chassis: lldpcli_json("chassis") + }; + } + } + } +};