network-utility 1.1.55 → 1.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/document/bgp-CR16010H-F.md +112 -1
  3. data/document/bgp-CR16018-F.md +112 -2
  4. data/document/bgp-CR19000-20.md +112 -2
  5. data/document/bgp-CRS-16.md +178 -2
  6. data/document/bgp-M6000-16E.md +112 -2
  7. data/document/bgp-M6000-18S.md +112 -2
  8. data/document/bgp-M6000-8.md +112 -2
  9. data/document/bgp-M6000-8E.md +112 -2
  10. data/document/bgp-ME60-16.md +112 -2
  11. data/document/bgp-ME60-X16.md +112 -2
  12. data/document/bgp-NE40E-X16.md +112 -2
  13. data/document/bgp-NE40E-X16A.md +112 -2
  14. data/document/bgp-NE40E-X8.md +112 -2
  15. data/document/bgp-NE5000E-20.md +112 -2
  16. data/document/bgp-NE5000E-X16.md +112 -2
  17. data/document/bgp-NE5000E-X16A.md +112 -2
  18. data/document/bgp-T8000-18.md +112 -1
  19. data/document/config.md +31 -27
  20. data/document/if-ALCATEL7750.md +24 -0
  21. data/document/if-CRS-16.md +28 -0
  22. data/document/if-NE40E-X16.md +11 -11
  23. data/document/if-Nokia7750.md +24 -0
  24. data/document/isis-ALCATEL7750.md +73 -0
  25. data/document/isis-CR16010H-F.md +66 -0
  26. data/document/isis-CR16018-F.md +66 -0
  27. data/document/isis-CR19000-20.md +66 -0
  28. data/document/isis-CRS-16.md +110 -0
  29. data/document/isis-CX600-X16A.md +1 -0
  30. data/document/isis-CX600-X8A.md +1 -0
  31. data/document/isis-M6000-16E.md +99 -0
  32. data/document/isis-M6000-18S.md +99 -0
  33. data/document/isis-M6000-8E.md +99 -0
  34. data/document/isis-NE40E-X16.md +141 -0
  35. data/document/isis-NE40E-X16A.md +1 -0
  36. data/document/isis-NE5000E-20.md +1 -0
  37. data/document/isis-NE5000E-X16.md +1 -0
  38. data/document/isis-NE5000E-X16A.md +1 -0
  39. data/document/isis-NE8000E-X8.md +1 -0
  40. data/document/isis-NE8100-X8.md +1 -0
  41. data/document/isis-Nokia7750.md +75 -0
  42. data/document/isis-T8000-18.md +99 -0
  43. data/network.rb +1 -1
  44. metadata +12 -1
@@ -0,0 +1,141 @@
1
+ # NE40E-X16 接口
2
+
3
+ ```ruby
4
+ @sign << ['NE40E-X16', '接口isis']
5
+ @sign << ['NE40E-X16', 'isis']
6
+
7
+ module NE40E_X16
8
+ module_function
9
+
10
+ def 接口isis 接口配置
11
+ isis = {}
12
+ port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
13
+ lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
14
+ lines.each do|line|
15
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
16
+ isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
17
+ isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
18
+ isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
19
+ isis['cost'] = line.strip.split(' ').last.to_i if line.include?('isis cost')
20
+ isis['ipv6-cost'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 cost')
21
+ if line.include?('isis ldp-sync')
22
+ isis['ldp-sync'] ||= {}
23
+ isis['ldp-sync']['state'] = 'enable'
24
+ isis['ldp-sync']['hold-max-cost-timer'] = line.strip.split(' ').last+'s' if line.include?('isis timer ldp-sync')
25
+ end
26
+ isis['hold-max-cost-timer'] = line.strip.split(' ').last+'ms' if line.include?('isis peer hold-max-cost')
27
+ end
28
+ return { port_name => isis }
29
+ end
30
+
31
+ def isis isis配置
32
+ isis = {};frr4_flag, frr6_flag = false, false
33
+ isis配置.split("\n").each do|line|
34
+ isis['pid'] = line.split(' ').last.strip if line[0..4]=='isis '
35
+ isis['level'] = line.split(' ').last.strip if line.include?('is-level')
36
+ isis['cost-style'] = line.split(' ').last.strip if line.include?('cost-style')
37
+ if line.include?('timer lsp-generation')
38
+ isis['lsp-generation-timer'] ||= {}
39
+ setter = line.split('lsp-generation').last.strip.split(' ')
40
+ setlevels = []
41
+ setlevels = ['level-1'] if setter[-1]=='level-1'
42
+ setlevels = ['level-2'] if setter[-1]=='level-2'
43
+ setlevels = ['level-1', 'level-2']
44
+ setlevels.each do|setlevel|
45
+ isis['lsp-generation-timer']['max-interval'] = setter[0]+'s'
46
+ isis['lsp-generation-timer']['init-interval'] = setter[1]+'ms' if setter[1] && !setter[1].include?('level')
47
+ isis['lsp-generation-timer']['incr-interval'] = setter[2]+'ms' if setter[2] && !setter[2].include?('level')
48
+ end
49
+ end
50
+ if line.include?('bfd all-interfaces') && line.strip[0..2]=='bfd'
51
+ isis['bfd'] ||= {}
52
+ isis['bfd']['interface'] = 'enable' if line.include?('enable')
53
+ words = line.split(' ')
54
+ isis['bfd']['min-tx-interval'] = words[words.index('min-tx-interval')+1] + 'ms' if words.index('min-tx-interval')
55
+ isis['bfd']['min-rx-interval'] = words[words.index('min-rx-interval')+1] + 'ms' if words.index('min-rx-interval')
56
+ isis['bfd']['detect-multiplier'] = words[words.index('detect-multiplier')+1].to_i if words.index('detect-multiplier')
57
+ isis['bfd']['tos-exp'] = words[words.index('tos-exp')+1].to_i if words.index('tos-exp')
58
+ isis['bfd']['frr-binding'] = 'enable' if line.include?('frr-binding')
59
+ end
60
+ if line.include?('ipv6 bfd all-interfaces')
61
+ isis['ipv6-bfd'] ||= {}
62
+ isis['ipv6-bfd']['interface'] = 'enable' if line.include?('enable')
63
+ words = line.split(' ')
64
+ isis['ipv6-bfd']['min-tx-interval'] = words[words.index('min-tx-interval')+1] + 'ms' if words.index('min-tx-interval')
65
+ isis['ipv6-bfd']['min-rx-interval'] = words[words.index('min-rx-interval')+1] + 'ms' if words.index('min-rx-interval')
66
+ isis['ipv6-bfd']['detect-multiplier'] = words[words.index('detect-multiplier')+1].to_i if words.index('detect-multiplier')
67
+ isis['ipv6-bfd']['frr-binding'] = 'enable' if line.include?('frr-binding')
68
+ end
69
+ isis['net'] = line.split(' ').last if line.include?('network-entity')
70
+ isis['is-name'] = line.split(' ').last if line.include?('is-name')
71
+ if line.include?('avoid-microloop') && line.strip[0..4]=='avoid'
72
+ isis['avoid-microloop'] ||= {}
73
+ isis['avoid-microloop']['frr-protected'] ||= {'rib-update-delay'=>'100ms'} if line.include?('frr-protected')
74
+ isis['avoid-microloop']['frr-protected']['rib-update-delay'] = line.split(' ').last+'ms' if line.include?('frr-protected') && line.include?('rib-update-delay')
75
+ isis['avoid-microloop']['te-tunnel'] ||= {'rib-update-delay'=>'1000ms'} if line.include?('te-tunnel')
76
+ isis['avoid-microloop']['te-tunnel']['rib-update-delay'] = line.split(' ').last+'ms' if line.include?('te-tunnel') && line.include?('rib-update-delay')
77
+ end
78
+ if line.include?('ipv6 avoid-microloop')
79
+ isis['ipv6-avoid-microloop'] ||= {}
80
+ isis['ipv6-avoid-microloop']['segment-routing'] ||= {'rib-update-delay'=>'5000ms'} if line.include?('segment-routing')
81
+ isis['ipv6-avoid-microloop']['segment-routing']['rib-update-delay'] = line.split(' ').last+'ms' if line.include?('segment-routing') && line.include?('rib-update-delay')
82
+ end
83
+ isis['preference'] = line.split(' ').last.to_i if line.strip[0..10]=='preference '
84
+ isis['ipv6-preference'] = line.split(' ').last.to_i if line.include?('ipv6 preference ')
85
+ if line.include?('timer spf')
86
+ setter = line.split('timer spf').last.strip.split(' ')
87
+ isis['spf-timer'] ||= {}
88
+ isis['spf-timer']['max-interval'] = setter[0]+'s'
89
+ isis['spf-timer']['init-interval'] = setter[1]+'ms' if setter[1]
90
+ isis['spf-timer']['incr-interval'] = setter[2]+'ms' if setter[2]
91
+ end
92
+ if line.include?('set-overload')
93
+ isis['set-overload'] ||= {}
94
+ isis['set-overload']['allow'] = 'interlevel' if line.include?('allow interlevel')
95
+ isis['set-overload']['allow'] = 'external' if line.include?('allow external')
96
+ isis['set-overload']['on-startup'] ||= {} if line.include?('on-startup')
97
+ words = line.strip.split(' ')
98
+ if line.include?('on-startup') && words[words.index('on-startup')+1].to_s.match(/^\d+$/)
99
+ isis['set-overload']['on-startup']['timeout'] = words[words.index('on-startup')+1]+'s'
100
+ else
101
+ # isis['set-overload']['on-startup']['timeout'] = '600s'
102
+ if line.include?('send-sa-bit') && words[words.index('send-sa-bit')+1].match(/^\d+$/)
103
+ isis['set-overload']['on-startup']['send-sa-bit'] = words[words.index('send-sa-bit')+1]+'s'
104
+ else
105
+ # isis['set-overload']['on-startup']['send-sa-bit'] = '30s'
106
+ end
107
+ # TODO: start-from-nbr | wait-for-bgp | route-delay-distribute
108
+ end
109
+ end
110
+ (isis['frr'] = {}; frr4_flag = true) if line.strip=='frr'
111
+ isis['frr']['loop-free-alternate'] = line.split(' ').last if line.include?('loop-free-alternate ') && frr4_flag
112
+ isis['frr']['ti-lfa'] = line.split(' ').last if line.include?('ti-lfa ') && frr4_flag
113
+ (frr4_flag = false) if frr4_flag && line==' #'
114
+ (isis['ipv6-frr'] = {}; frr6_flag = true) if line.include?('ipv6 frr')
115
+ isis['ipv6-frr']['loop-free-alternate'] = line.split(' ').last if line.include?('loop-free-alternate ') && frr6_flag
116
+ isis['ipv6-frr']['ti-lfa'] = line.split(' ').last if line.include?('ti-lfa ') && frr6_flag
117
+ (frr6_flag = false) if frr6_flag && line==' #'
118
+ isis['topology'] = line.split('topology ').last.strip if line.include?('ipv6 enable topology ')
119
+ isis['ipv6-advertise'] = 'link-attributes' if line.include?('ipv6 advertise link attributes')
120
+ isis['ipv6-traffic-eng'] = line.split(' ').last if line.include?('ipv6 traffic-eng')
121
+ if line.include?('ipv6 metric-delay')
122
+ isis['ipv6-metric-delay'] ||= {}
123
+ isis['ipv6-metric-delay']['advertisement'] = line.split(' ').last if line.include?('advertisement enable')
124
+ if line.include?('suppress')
125
+ words = line.split(' ')
126
+ isis['ipv6-metric-delay']['suppress'] ||= {}
127
+ isis['ipv6-metric-delay']['suppress']['timer'] = words[words.index('timer')+1]+'s' if words.index('timer')
128
+ isis['ipv6-metric-delay']['suppress']['percent-threshold'] = words[words.index('percent-threshold')+1]+'%' if words.index('percent-threshold')
129
+ isis['ipv6-metric-delay']['suppress']['absolute-threshold'] = words[words.index('absolute-threshold')+1]+'ms' if words.index('absolute-threshold')
130
+ end
131
+ end
132
+ if line.include?('segment-routing ipv6 locator')
133
+ isis['srv6-locator'] ||= {}
134
+ isis['srv6-locator']['name'] = line.split('locator').last.strip.split(' ').first
135
+ isis['srv6-locator']['auto-sid-disable'] = true if line.split('locator').last.strip.split(' ')[1]
136
+ end
137
+ end
138
+ return isis
139
+ end
140
+ end
141
+ ```
@@ -13,6 +13,7 @@ module NE40E_X16A
13
13
  port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
14
14
  lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
15
15
  lines.each do|line|
16
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
16
17
  isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
17
18
  isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
18
19
  isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
@@ -13,6 +13,7 @@ module NE5000E_20
13
13
  port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
14
14
  lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
15
15
  lines.each do|line|
16
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
16
17
  isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
17
18
  isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
18
19
  isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
@@ -13,6 +13,7 @@ module NE5000E_X16
13
13
  port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
14
14
  lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
15
15
  lines.each do|line|
16
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
16
17
  isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
17
18
  isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
18
19
  isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
@@ -13,6 +13,7 @@ module NE5000E_X16A
13
13
  port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
14
14
  lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
15
15
  lines.each do|line|
16
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
16
17
  isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
17
18
  isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
18
19
  isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
@@ -12,6 +12,7 @@ module NE8000E_X8
12
12
  port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
13
13
  lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
14
14
  lines.each do|line|
15
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
15
16
  isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
16
17
  isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
17
18
  isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
@@ -12,6 +12,7 @@ module NE8100_X8
12
12
  port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
13
13
  lines = 接口配置.split("\n").select{|line|line.strip[0..4]=='isis '}
14
14
  lines.each do|line|
15
+ isis['authentication-mode'] = line.strip.split('mode ').last if line.include?('authentication-mode')
15
16
  isis['pid'] = line.strip.split(' ').last.to_i if line.include?('isis enable')
16
17
  isis['ipv6-pid'] = line.strip.split(' ').last.to_i if line.include?('isis ipv6 enable')
17
18
  isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('isis circuit-type')
@@ -0,0 +1,75 @@
1
+ # Nokia7750 isis
2
+
3
+ ```ruby
4
+ @sign << ['Nokia7750', '接口isis']
5
+ @sign << ['Nokia7750', 'isis']
6
+
7
+ module Nokia7750
8
+ module_function
9
+
10
+ def 接口isis 正文
11
+ isis = {}
12
+ isis_conf = 正文['ISIS Configuration'].join("\n").match_paragraph(" isis 0","\n exit")
13
+ interfaces = isis_conf.join.match_paragraph(" interface ","\n exit")
14
+ interfaces.each do|interface|
15
+ if_name = interface.split("\n")[0].gsub('"','')
16
+ interface.split("\n").each_with_index do|line,index|
17
+ if_name = line.strip if index==0
18
+ isis[if_name] ||= {}
19
+ isis[if_name]['level'] = line.split(' ').last if line.include?('level-capability')
20
+ isis[if_name]['interface-type'] = line.split(' ').last if line.include?('interface-type')
21
+ isis[if_name]['status'] = 'no shutdown' if line.strip=='no shutdown'
22
+ end
23
+
24
+ lv_num = nil
25
+ level = interface.match_paragraph(" level ","\n exit")
26
+ level.join.split("\n").each_with_index do|line,index|
27
+ lv_num = "level#{line.strip}" if index==0
28
+ isis[if_name][lv_num] ||= {}
29
+ isis[if_name][lv_num]['metric'] = line.split(' ').last.to_i if line.include?('metric')
30
+ isis[if_name][lv_num]['passive'] = 'enable' if line.include?('passive')
31
+ isis[if_name][lv_num]['ipv6-unicast-metric'] = line.split(' ').last.to_i if line.include?('ipv6-unicast-metric')
32
+ end
33
+ end
34
+ return isis
35
+ end
36
+
37
+ def isis 正文
38
+ isis = {}
39
+ isis_conf = 正文['ISIS Configuration'].join("\n").match_paragraph(" isis 0","\n exit")
40
+ isis_conf.join.split("\n").each do|line|
41
+ isis['level'] = line.split(' ').last if line.include?('level-capability')
42
+ isis['area-id'] = line.split(' ').last if line.include?('area-id')
43
+ isis['ignore-lsp-errors'] = 'enable' if line.include?('ignore-lsp-errors')
44
+ if line.include?('lsp')
45
+ isis['lsp'] ||= {}
46
+ isis['lsp']['lifetime'] = line.split(' ').last if line.include?('lsp-lifetime')
47
+ isis['lsp']['refresh-interval'] = line.split('refresh-interval ')[1].split(' ')[0] if line.include?('lsp-refresh-interval')
48
+ isis['lsp']['half-lifetime'] = line.split('half-lifetime ')[1].strip if line.include?('half-lifetime')
49
+ end
50
+ isis['overload-on-boot-timeout'] = line.split(' ').last.to_i if line.include?('overload-on-boot timeout')
51
+ isis['ipv6-routing'] = line.split(' ').last if line.include?('ipv6-routing')
52
+ isis['enable'] = true if line.strip=='no shutdown'
53
+ end
54
+ multi_topology = isis_conf.join.match_paragraph(" multi-topology","\n exit")
55
+ multi_topology.join.split("\n").each do|line|
56
+ if line.include?('ipv6-unicast')
57
+ isis['multi-topology'] ||= {}
58
+ isis['multi-topology']['ipv6-unicast'] = 'enable'
59
+ end
60
+ end
61
+ lv_num = nil
62
+ level = isis_conf.join.match_paragraph(" level ","\n exit")
63
+ level.join.split("\n").each_with_index do|line,index|
64
+ if index==0
65
+ lv_num = "level#{line.strip}"
66
+ isis[lv_num] ||= {}
67
+ end
68
+ isis[lv_num]['external-preference'] = line.split(' ').last if line.include?('external-preference')
69
+ isis[lv_num]['preference'] = line.split(' ').last if line.include?('preference') && !line.include?('external')
70
+ isis[lv_num]['wide-metrics-only'] = 'enable' if line.include?('wide-metrics-only')
71
+ end
72
+ return isis
73
+ end
74
+ end
75
+ ```
@@ -0,0 +1,99 @@
1
+ # T8000-18 isis
2
+
3
+ ```ruby
4
+ @sign << ['T8000-18', '接口isis']
5
+ @sign << ['T8000-18', 'isis接口']
6
+ @sign << ['T8000-18', 'isis']
7
+
8
+ module T8000_18
9
+ module_function
10
+
11
+ def 接口isis 接口配置 # from isis module
12
+ isis = {}
13
+ port_name = self.端口识别(接口配置.split("\n").first.to_s).join()
14
+ 接口配置.split("\n").each do|line|
15
+ isis['isis'] = 'enable' if line.include?('ip router isis')
16
+ isis['isis-ipv6'] = 'enable' if line.include?('ipv6 router isis')
17
+ if line.include?('metric') && line.include?('level') && !line.include?('ipv6')
18
+ isis['metric'] = {
19
+ 'value' => line.split('metric ').last.split(' ').first,
20
+ 'type' => line.split(' ').find{|w|w.include?('level')}
21
+ }
22
+ elsif line.include?('metric') && line.include?('level') && line.include?('ipv6')
23
+ isis['metric-ipv6'] = {
24
+ 'value' => line.split('metric ').last.split(' ').first,
25
+ 'type' => line.split(' ').find{|w|w.include?('level')}
26
+ }
27
+ end
28
+ isis['circuit-type'] = line.split('circuit-type').last.strip if line.include?('circuit-type')
29
+ isis['network'] = line.split('network').last.strip if line.include?('network')
30
+ if line.include?('authentication')
31
+ isis['authentication'] ||= {}
32
+ if line.include?('authentication-type')
33
+ isis['authentication']['type'] = line.split('authentication-type').last.strip
34
+ elsif line.include?('authentication encrypted')
35
+ isis['authentication']['password'] = line.split('authentication').last.strip
36
+ end
37
+ end
38
+ end
39
+ return { port_name => isis }
40
+ end
41
+
42
+ def isis接口 isis配置
43
+ isis配置.match_paragraph("\n interface ", "\n $")
44
+ end
45
+
46
+ def isis isis配置
47
+ isis = {};aflag,iflag = false, false;af_name = nil
48
+ isis配置.split("\n").each do|line|
49
+ if line.include?('address-family ')
50
+ aflag = true
51
+ isis['address-family'] ||= {}
52
+ af_name = line.split(' ').last
53
+ isis['address-family'][af_name] ||= {}
54
+ elsif line.include?('interface ')
55
+ bflag = true
56
+ end
57
+ (aflag = false;af_name=nil) if aflag && line.strip=='$'
58
+ iflag = false if iflag && line.strip=='$'
59
+ if aflag
60
+ isis['address-family'][af_name]['distance'] = line.split('distance').last.strip if line.include?('distance')
61
+ isis['address-family'][af_name]['maximum-paths'] = line.split('maximum-paths').last.strip if line.include?('maximum-paths')
62
+ isis['address-family'][af_name]['multi-topology'] = line.split('multi-topology').last.strip if line.include?('multi-topology')
63
+ if line.include?('metric')
64
+ isis['address-family'][af_name]['metric'] = {
65
+ 'value' => line.split("metric").last.split(' ').first.strip,
66
+ 'type' => line.split(' ').find{|s|s.include?('level')}.to_s.strip
67
+ }
68
+ end
69
+ end
70
+ if !aflag && !iflag
71
+ isis['pid'] = line.split(' ').last.strip if line.include?('router isis ')
72
+ isis['area'] = line.split(' ').last.strip if line.include?('area ')
73
+ isis['system-id'] = line.split(' ').last.strip if line.include?('system-id ')
74
+ isis['is-type'] = line.split(' ').last.strip if line.include?('is-type ')
75
+ isis['distance'] = line.split(' ').last.strip if line.include?('distance ')
76
+ isis['lsp-refresh-time'] = line.split(' ').last.strip if line.include?('lsp-refresh-time')
77
+ isis['max-lsp-lifetime'] = line.split(' ').last.strip if line.include?('max-lsp-lifetime')
78
+ isis['maximum-paths'] = line.split(' ').last.strip if line.include?('maximum-paths')
79
+ if line.include?('metric')
80
+ isis['metric'] ||= {}
81
+ if line.include?('metric-style ')
82
+ isis['metric']['style'] = line.split(' ').last.strip
83
+ else
84
+ isis['metric'].merge!(
85
+ 'value' => line.split("metric").last.split(' ').first.strip,
86
+ 'type' => line.split(' ').find{|s|s.include?('level')}.to_s.strip
87
+ )
88
+ end
89
+ end
90
+ if line.include?('redistribute')
91
+ isis['redistribute'] ||= []
92
+ isis['redistribute'] << line.split(' ')[1..-1].join(' ')
93
+ end
94
+ end
95
+ end
96
+ return isis
97
+ end
98
+ end
99
+ ```
data/network.rb CHANGED
@@ -23,5 +23,5 @@
23
23
  ].each{|mod|require mod}
24
24
 
25
25
  module Network
26
- VERSION = '1.1.55'
26
+ VERSION = '1.1.61'
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: network-utility
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.55
4
+ version: 1.1.61
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt
@@ -121,14 +121,25 @@ files:
121
121
  - document/if-VNE9000.md
122
122
  - document/if-ZXCTN9000-18EA.md
123
123
  - document/if-ZXCTN9000-8EA.md
124
+ - document/isis-ALCATEL7750.md
125
+ - document/isis-CR16010H-F.md
126
+ - document/isis-CR16018-F.md
127
+ - document/isis-CR19000-20.md
128
+ - document/isis-CRS-16.md
124
129
  - document/isis-CX600-X16A.md
125
130
  - document/isis-CX600-X8A.md
131
+ - document/isis-M6000-16E.md
132
+ - document/isis-M6000-18S.md
133
+ - document/isis-M6000-8E.md
134
+ - document/isis-NE40E-X16.md
126
135
  - document/isis-NE40E-X16A.md
127
136
  - document/isis-NE5000E-20.md
128
137
  - document/isis-NE5000E-X16.md
129
138
  - document/isis-NE5000E-X16A.md
130
139
  - document/isis-NE8000E-X8.md
131
140
  - document/isis-NE8100-X8.md
141
+ - document/isis-Nokia7750.md
142
+ - document/isis-T8000-18.md
132
143
  - document/lic-M6000-16E.md
133
144
  - document/lic-M6000-18S.md
134
145
  - document/lic-M6000-8.md