bgp4r 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05332f8a257e4ce30b788aa004c3866aacf549c1
4
- data.tar.gz: fc2bfc4f60b669dfd768a2694a791ff5eae2960c
3
+ metadata.gz: c51910e055eec6ee760068f2e0f143c82d9ffe02
4
+ data.tar.gz: f3438e906aa63a9847e63722a6ee8caf99cc29dd
5
5
  SHA512:
6
- metadata.gz: 40655ec95476a2b4dba344c72dfdc0dc3fc136a6b20455de647d0884cc2115957413131bbdec9817f9f491a6bd53b175ca3d709bee01c4dafe742cd60b753192
7
- data.tar.gz: 2ee16cc41729f434807c02d5af2ebb5383f5437c8bfad96507821f8c46f49496e28a2974ba9e2dda6539c8a86c3be335055b7767fc0f9cffcb22d2ff158ca2ba
6
+ metadata.gz: c0799f8fa5199f21600564a285a7f0fdb76af7119f72e17078b8723ceee11f4c8e30ca8ffbe41c749d1e617727a6b9a416431bd7997db93b76b451e96fe51fe1
7
+ data.tar.gz: aeeaf6ea118d5852591312a93f5b8897464770754fedd1392a3423ba1518fa376925ae59453e0e3c7ebb4a985f8a51fa109cd39687d7c5b3d6b3b94a42bc2d95
data/bgp/messages/open.rb CHANGED
@@ -37,6 +37,8 @@ class Open < Message
37
37
 
38
38
  include OPT_PARM
39
39
 
40
+ AS_TRANS=23456
41
+
40
42
  attr_reader :version, :local_as, :holdtime, :opt_parms
41
43
 
42
44
  def initialize(*args)
@@ -59,7 +61,7 @@ class Open < Message
59
61
 
60
62
  def encode
61
63
  opt_parms = @opt_parms.compact.collect { |cap| cap.encode }.join
62
- s = [@version, @local_as, @holdtime, @bgp_id.hton].pack("Cnna4")
64
+ s = [@version, _my_encoded_as_, @holdtime, @bgp_id.hton].pack("Cnna4")
63
65
  s += if opt_parms.size>255
64
66
  [0xffff, opt_parms.size, opt_parms].pack("nna*")
65
67
  else
@@ -75,7 +77,7 @@ class Open < Message
75
77
  def to_s
76
78
  msg = self.encode
77
79
  "Open Message (#{OPEN}), length: #{msg.size}\n" +
78
- " Version #{@version}, my AS #{@local_as}, Holdtime #{@holdtime}s, ID #{@bgp_id}" +
80
+ " Version #{@version}, my AS #{_my_encoded_as_}, Holdtime #{@holdtime}s, ID #{@bgp_id}" +
79
81
  ([""] + @opt_parms.compact.collect { |cap| cap.to_s } + [""]).join("\n ") +
80
82
  msg.hexlify.join("\n") + "\n"
81
83
  end
@@ -97,6 +99,10 @@ class Open < Message
97
99
  end
98
100
 
99
101
  private
102
+
103
+ def _my_encoded_as_
104
+ @local_as > 0xffff ? AS_TRANS : @local_as
105
+ end
100
106
 
101
107
  def parse(_s)
102
108
  s = super(_s)
data/bgp4r.gemspec CHANGED
@@ -1,12 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "bgp4r"
3
- s.version = "0.0.17"
3
+ s.version = "0.0.18"
4
4
  s.email = "jesnault@gmail.com"
5
5
  s.authors = ["Jean-Michel Esnault"]
6
- s.date = "2014-05-07"
6
+ s.date = "2014-10-17"
7
7
  s.description = "Best way to play with BGP protocol using ruby"
8
8
  s.summary = "Best way to play with BGP protocol using ruby"
9
- s.extra_rdoc_files = ["LICENSE.txt","README.rdoc"]
10
9
  s.homepage = "http://github.com/jesnault/bgp4r"
11
10
  s.rdoc_options = ["--quiet", "--title", "bgp4r", "--line-numbers"]
12
11
  s.require_paths = ["."]
@@ -14,5 +13,6 @@ Gem::Specification.new do |s|
14
13
  s.required_rubygems_version = '>= 1.3.6'
15
14
  s.files = `git ls-files -z`.split("\x0")
16
15
  s.test_files = `git ls-files test -z`.split("\x0")
16
+ s.extra_rdoc_files = ["LICENSE.txt","README.rdoc"] + `git ls-files bgp -z`.split("\x0")
17
17
  end
18
18
 
data/changelog.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 0.0.18
2
+ * Bug fixes
3
+ fix open message encoding when asn > 0xffff
4
+ * More examples
5
+
1
6
  === 0.0.17
2
7
  * Get rid of Rakefile, VERSION.yml ...
3
8
  * Simpler gem specification
@@ -14,14 +19,14 @@
14
19
  + Extended_communities
15
20
  o revisit Extended_communities#to_hash()
16
21
  o changed to_hash() to return
17
- => :extended_communities=> [ ec1, ec2, ..., ecn ]
22
+ => :extended_communities=> [ ec1, ec2, ..., ecn ]
18
23
 
19
24
  + revisit to_hash() for following attr.
20
25
  o Originator_id
21
26
  o Aggregator
22
27
  o Multi_exit_disc
23
28
  o Cluster_list
24
-
29
+
25
30
  * make Path_attribute comparable to test for equality:
26
31
  add following instance methods
27
32
  Path_attributes#sort
@@ -29,8 +34,8 @@
29
34
  Path_attributes#<=>
30
35
 
31
36
  * add getters for:
32
- + all known path attributes
33
- + all known extended communities
37
+ + all known path attributes
38
+ + all known extended communities
34
39
  So one can write:
35
40
  > puts upd.path_attribute.mp_reach.safi
36
41
  => 128
@@ -38,7 +43,7 @@
38
43
  => "Route target: 4:1"
39
44
  > puts upd.path_attribute.mp_reach.nlris[0]
40
45
  => "Label Stack=16000 (bottom) RD=19:17, ID=1, IPv4=10.1.1.0/24"
41
-
46
+
42
47
  === 0.0.14 February 5, 2012
43
48
  * add support for accumulated igp metric attribute
44
49
  * add support for VPN default_route RD: 0/0
@@ -51,7 +56,7 @@
51
56
 
52
57
  === 0.0.12 February 13, 2011
53
58
  * add add-path capability support
54
-
59
+
55
60
  === 0.0.11 January 8, 2011
56
61
  * stop using autoload
57
62
  * fix Communities#has_no_<well_known_community>? predicates
@@ -64,26 +69,26 @@
64
69
  pa.has_a_local_pref?
65
70
  pa.has_a_aggregator?
66
71
  pa.has_a_mp_reach?
67
-
68
- * example that shows how to use
72
+
73
+ * example that shows how to use
69
74
  bgpdata.netsec.colostate.edu bgp xml feed with bgp4r
70
-
75
+
71
76
  === 0.0.9 October 12, 2010
72
77
  * add support for Capability message
73
- * add notification code 7 subcode 1,2,3,4
78
+ * add notification code 7 subcode 1,2,3,4
74
79
  * refactoring capabilities adding dynamic capability opt parameter
75
-
76
- === 0.0.8 September 30, 2010
80
+
81
+ === 0.0.8 September 30, 2010
77
82
  * add end of rib markers
78
83
  eg
79
- Mp_unreach.new(:afi=>1, :safi=>4).to_shex
84
+ Mp_unreach.new(:afi=>1, :safi=>4).to_shex
80
85
  => '800f03000104'
81
- Mp_unreach.new(:afi=>1, :safi=>128).to_shex
86
+ Mp_unreach.new(:afi=>1, :safi=>128).to_shex
82
87
  => '800f03000180'
83
- Mp_unreach.new(:afi=>1, :safi=>2).to_shex
88
+ Mp_unreach.new(:afi=>1, :safi=>2).to_shex
84
89
  => '800f03000102'
85
-
86
- * change optional parameter length encoding
90
+
91
+ * change optional parameter length encoding
87
92
  as per draft-ietf-idr-ext-opt-param-01
88
93
 
89
94
  === 0.0.7 September 12, 2010
@@ -98,7 +103,7 @@
98
103
  === 0.0.5 August 14, 2010
99
104
 
100
105
  * allow for appending Nlri to update object
101
- eg,
106
+ eg,
102
107
 
103
108
  u = Update.new
104
109
  u << '100.0.0.0/13'
@@ -110,20 +115,20 @@
110
115
  >> puts u.nlri.to_s
111
116
  => 100.0.0.0/13
112
117
  99.0.0.0/12
113
-
118
+
114
119
  * allow for apending Attributes to an Update object
115
120
  eg,
116
-
121
+
117
122
  update = Update.new
118
123
  update << Origin.new
119
124
  update << Next_hop.new('10.0.0.1')
120
- update << As_path.new(1,2,3,4,5,6,7,8)
121
-
125
+ update << As_path.new(1,2,3,4,5,6,7,8)
126
+
122
127
  === 0.0.4 June 30, 2009
123
128
  === 0.0.3 June 29, 2009
124
129
  === 0.0.2 June 29, 2009
125
130
  * example of how to code a simple route generator using bgp4r
126
131
 
127
132
  === 0.0.1 Fri Jun 26 2009
128
- * Initial commit
133
+ * Initial commit
129
134
 
@@ -0,0 +1,298 @@
1
+ require 'bgp4r'
2
+ include BGP
3
+
4
+ def create_fiber(base_prefix, nprefix=22, npack=10)
5
+ fiber = Fiber.new do
6
+ ipaddr = IPAddr.new(base_prefix)
7
+ prefixes=[]
8
+ nprefix.times do |i|
9
+ prefixes << (ipaddr ^ i)
10
+ next unless (i%npack)==0
11
+ Fiber.yield prefixes
12
+ prefixes=[]
13
+ end
14
+ Fiber.yield prefixes unless prefixes.empty?
15
+ nil
16
+ end
17
+ fiber
18
+ end
19
+
20
+ nexthop4='192.168.131.20'
21
+
22
+ pa = Path_attribute.new(
23
+ Next_hop.new(nexthop4),
24
+ Origin.new(0),
25
+ As_path.new(200),
26
+ Local_pref.new(100),
27
+ )
28
+
29
+ ipv4_routes = create_fiber("13.11.0.0/26")
30
+
31
+ Log.create
32
+ Log.level=Logger::DEBUG
33
+
34
+ n = Neighbor.new :my_as=> 197014, :remote_addr => '192.168.131.11', :id=> '0.0.0.1'
35
+
36
+ n.capability_mbgp_ipv4_unicast
37
+ n.capability_four_byte_as
38
+ n.start
39
+
40
+
41
+ while subnets = ipv4_routes.resume
42
+ n.send_message Update.new pa.replace(Mp_reach.new(:afi=>1, :safi=>1, :nexthop=> nexthop4, :nlris=> subnets))
43
+ end
44
+
45
+
46
+ sleep(300)
47
+
48
+
49
+ __END__
50
+
51
+ Produces:
52
+
53
+
54
+ jme@ubuntu:/mnt/hgfs/jme/routing/bgp4r$ ifconfig tap0 | grep inet
55
+ inet addr:192.168.131.20 Bcast:192.168.131.255 Mask:255.255.255.0
56
+
57
+ R11# show running config
58
+
59
+ !
60
+ router bgp 197014
61
+ bgp router-id 2.2.2.2
62
+ bgp log-neighbor-changes
63
+ neighbor 192.168.131.20 remote-as 197014
64
+ !
65
+ address-family ipv4
66
+ neighbor 192.168.131.20 activate
67
+ exit-address-family
68
+ !
69
+
70
+ R11#show ip route bgp
71
+ Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
72
+ D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
73
+ N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
74
+ E1 - OSPF external type 1, E2 - OSPF external type 2
75
+ i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
76
+ ia - IS-IS inter area, * - candidate default, U - per-user static route
77
+ o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
78
+ + - replicated route, % - next hop override
79
+
80
+ Gateway of last resort is not set
81
+
82
+ 13.0.0.0/26 is subnetted, 22 subnets
83
+ B 13.11.0.0 [200/0] via 192.168.131.20, 00:04:55
84
+ B 13.11.0.64 [200/0] via 192.168.131.20, 00:04:55
85
+ B 13.11.0.128 [200/0] via 192.168.131.20, 00:04:55
86
+ B 13.11.0.192 [200/0] via 192.168.131.20, 00:04:55
87
+ B 13.11.1.0 [200/0] via 192.168.131.20, 00:04:55
88
+ B 13.11.1.64 [200/0] via 192.168.131.20, 00:04:55
89
+ B 13.11.1.128 [200/0] via 192.168.131.20, 00:04:55
90
+ B 13.11.1.192 [200/0] via 192.168.131.20, 00:04:55
91
+ B 13.11.2.0 [200/0] via 192.168.131.20, 00:04:55
92
+ B 13.11.2.64 [200/0] via 192.168.131.20, 00:04:55
93
+ B 13.11.2.128 [200/0] via 192.168.131.20, 00:04:55
94
+ B 13.11.2.192 [200/0] via 192.168.131.20, 00:04:55
95
+ B 13.11.3.0 [200/0] via 192.168.131.20, 00:04:55
96
+ B 13.11.3.64 [200/0] via 192.168.131.20, 00:04:55
97
+ B 13.11.3.128 [200/0] via 192.168.131.20, 00:04:55
98
+ B 13.11.3.192 [200/0] via 192.168.131.20, 00:04:55
99
+ B 13.11.4.0 [200/0] via 192.168.131.20, 00:04:55
100
+ B 13.11.4.64 [200/0] via 192.168.131.20, 00:04:55
101
+ B 13.11.4.128 [200/0] via 192.168.131.20, 00:04:55
102
+ B 13.11.4.192 [200/0] via 192.168.131.20, 00:04:55
103
+ B 13.11.5.0 [200/0] via 192.168.131.20, 00:04:55
104
+ B 13.11.5.64 [200/0] via 192.168.131.20, 00:04:55
105
+ R11#
106
+
107
+ jme@ubuntu:/mnt/hgfs/jme/routing/bgp4r$ ruby -I. examples/ibgp-ios-asn4bytes.rb
108
+ I, [08:16#19199] INFO -- : BGP::Neighbor Open Socket old state Idle new state Active
109
+ I, [08:16#19199] INFO -- : BGP::Neighbor SendOpen
110
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Send Open Message (1), length: 45
111
+ Version 4, my AS 23456, Holdtime 180s, ID 0.0.0.1
112
+ Option Capabilities Advertisement (2): [0206010400010001]
113
+ Multiprotocol Extensions (1), length: 4
114
+ AFI IPv4 (1), SAFI Unicast (1)
115
+ Option Capabilities Advertisement (2): [0206410400030196]
116
+ Capability(65): 4-octet AS number: 197014
117
+
118
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
119
+ 0x0001: 002d 0104 5ba0 00b4 0000 0001 1002 0601
120
+ 0x0002: 0400 0100 0102 0641 0400 0301 96
121
+
122
+
123
+ D, [08:16#19199] DEBUG -- : #<BGP::IO::Input:0x00000000ade6e8> #<Thread:0x00000000add888> started
124
+ D, [08:16#19199] DEBUG -- : #<BGP::IO::Output:0x00000000ade5f8> #<Thread:0x00000000add6d0> started
125
+ I, [08:16#19199] INFO -- : BGP::Neighbor ev_send_open old state Active new state OpenSent
126
+ I, [08:16#19199] INFO -- : BGP::Neighbor RecvOpen
127
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Recv Open Message (1), length: 57
128
+ Version 4, my AS 23456, Holdtime 180s, ID 2.2.2.2
129
+ Option Capabilities Advertisement (2): [0206010400010001]
130
+ Multiprotocol Extensions (1), length: 4
131
+ AFI IPv4 (1), SAFI Unicast (1)
132
+ Option Capabilities Advertisement (2): [02028000]
133
+ Route Refresh (Cisco) (128), length: 2
134
+ Option Capabilities Advertisement (2): [02020200]
135
+ Route Refresh (2), length: 2
136
+ Option Capabilities Advertisement (2): [02024600]
137
+ Option Capabilities Advertisement (2): [0206410400030196]
138
+ Capability(65): 4-octet AS number: 197014
139
+
140
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
141
+ 0x0001: 0039 0104 5ba0 00b4 0202 0202 1c02 0601
142
+ 0x0002: 0400 0100 0102 0280 0002 0202 0002 0246
143
+ 0x0003: 0002 0641 0400 0301 96
144
+
145
+
146
+ I, [08:16#19199] INFO -- : BGP::Neighbor RecvOpen old state OpenSent new state OpenConfirm
147
+ I, [08:16#19199] INFO -- : BGP::Neighbor RecvKeepalive
148
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Recv Keepalive Message (4), length: 19, [001304]
149
+
150
+ I, [08:16#19199] INFO -- : BGP::Neighbor SendKeepalive
151
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Send Keepalive Message (4), length: 19, [001304]
152
+
153
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor SendKeepAlive state is OpenConfirm
154
+ I, [08:16#19199] INFO -- : BGP::Neighbor RecvKeepAlive old state OpenConfirm new state Established
155
+ I, [08:16#19199] INFO -- : BGP::Neighbor version: 4, id: 0.0.0.1, as: 197014, holdtime: 180, peer addr: 192.168.131.11, local addr: started
156
+ I, [08:16#19199] INFO -- : BGP::Neighbor SendUpdate
157
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Send Update Message (2), length: 65
158
+ Path Attributes:
159
+ Next Hop (3), length: 4, Flags [T]: 192.168.131.20
160
+ 0x0000: c0a8 8314
161
+ Origin (1), length: 1, Flags [T]: igp
162
+ 0x0000: 00
163
+ As Path (2), length: 4, Flags [T]: 200
164
+ 0x0000: 0201 00c8
165
+ Local Pref (5), length: 4, Flags [T]: (0x0064) 100
166
+ 0x0000: 0000 0064
167
+ Mp Reach (14), length: 14, Flags [O]:
168
+ AFI IPv4 (1), SAFI Unicast (1)
169
+ nexthop: 192.168.131.20
170
+ 13.11.0.0/26
171
+ 0x0000: 0001 0104 c0a8 8314 001a 0d0b 0000
172
+
173
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
174
+ 0x0001: 0041 0200 0000 2a40 0304 c0a8 8314 4001
175
+ 0x0002: 0100 4002 0402 0100 c840 0504 0000 0064
176
+ 0x0003: 800e 0e00 0101 04c0 a883 1400 1a0d 0b00
177
+ 0x0004: 00
178
+
179
+
180
+ I, [08:16#19199] INFO -- : BGP::Neighbor SendUpdate
181
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Send Update Message (2), length: 110
182
+ Path Attributes:
183
+ Next Hop (3), length: 4, Flags [T]: 192.168.131.20
184
+ 0x0000: c0a8 8314
185
+ Origin (1), length: 1, Flags [T]: igp
186
+ 0x0000: 00
187
+ As Path (2), length: 4, Flags [T]: 200
188
+ 0x0000: 0201 00c8
189
+ Local Pref (5), length: 4, Flags [T]: (0x0064) 100
190
+ 0x0000: 0000 0064
191
+ Mp Reach (14), length: 59, Flags [O]:
192
+ AFI IPv4 (1), SAFI Unicast (1)
193
+ nexthop: 192.168.131.20
194
+ 13.11.0.64/26
195
+ 13.11.0.128/26
196
+ 13.11.0.192/26
197
+ 13.11.1.0/26
198
+ 13.11.1.64/26
199
+ 13.11.1.128/26
200
+ 13.11.1.192/26
201
+ 13.11.2.0/26
202
+ 13.11.2.64/26
203
+ 13.11.2.128/26
204
+ 0x0000: 0001 0104 c0a8 8314 001a 0d0b 0040 1a0d
205
+ 0x0001: 0b00 801a 0d0b 00c0 1a0d 0b01 001a 0d0b
206
+ 0x0002: 0140 1a0d 0b01 801a 0d0b 01c0 1a0d 0b02
207
+ 0x0003: 001a 0d0b 0240 1a0d 0b02 80
208
+
209
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
210
+ 0x0001: 006e 0200 0000 5740 0304 c0a8 8314 4001
211
+ 0x0002: 0100 4002 0402 0100 c840 0504 0000 0064
212
+ 0x0003: 800e 3b00 0101 04c0 a883 1400 1a0d 0b00
213
+ 0x0004: 401a 0d0b 0080 1a0d 0b00 c01a 0d0b 0100
214
+ 0x0005: 1a0d 0b01 401a 0d0b 0180 1a0d 0b01 c01a
215
+ 0x0006: 0d0b 0200 1a0d 0b02 401a 0d0b 0280
216
+
217
+
218
+ I, [08:16#19199] INFO -- : BGP::Neighbor SendUpdate
219
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Send Update Message (2), length: 110
220
+ Path Attributes:
221
+ Next Hop (3), length: 4, Flags [T]: 192.168.131.20
222
+ 0x0000: c0a8 8314
223
+ Origin (1), length: 1, Flags [T]: igp
224
+ 0x0000: 00
225
+ As Path (2), length: 4, Flags [T]: 200
226
+ 0x0000: 0201 00c8
227
+ Local Pref (5), length: 4, Flags [T]: (0x0064) 100
228
+ 0x0000: 0000 0064
229
+ Mp Reach (14), length: 59, Flags [O]:
230
+ AFI IPv4 (1), SAFI Unicast (1)
231
+ nexthop: 192.168.131.20
232
+ 13.11.2.192/26
233
+ 13.11.3.0/26
234
+ 13.11.3.64/26
235
+ 13.11.3.128/26
236
+ 13.11.3.192/26
237
+ 13.11.4.0/26
238
+ 13.11.4.64/26
239
+ 13.11.4.128/26
240
+ 13.11.4.192/26
241
+ 13.11.5.0/26
242
+ 0x0000: 0001 0104 c0a8 8314 001a 0d0b 02c0 1a0d
243
+ 0x0001: 0b03 001a 0d0b 0340 1a0d 0b03 801a 0d0b
244
+ 0x0002: 03c0 1a0d 0b04 001a 0d0b 0440 1a0d 0b04
245
+ 0x0003: 801a 0d0b 04c0 1a0d 0b05 00
246
+
247
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
248
+ 0x0001: 006e 0200 0000 5740 0304 c0a8 8314 4001
249
+ 0x0002: 0100 4002 0402 0100 c840 0504 0000 0064
250
+ 0x0003: 800e 3b00 0101 04c0 a883 1400 1a0d 0b02
251
+ 0x0004: c01a 0d0b 0300 1a0d 0b03 401a 0d0b 0380
252
+ 0x0005: 1a0d 0b03 c01a 0d0b 0400 1a0d 0b04 401a
253
+ 0x0006: 0d0b 0480 1a0d 0b04 c01a 0d0b 0500
254
+
255
+
256
+ I, [08:16#19199] INFO -- : BGP::Neighbor SendUpdate
257
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Send Update Message (2), length: 65
258
+ Path Attributes:
259
+ Next Hop (3), length: 4, Flags [T]: 192.168.131.20
260
+ 0x0000: c0a8 8314
261
+ Origin (1), length: 1, Flags [T]: igp
262
+ 0x0000: 00
263
+ As Path (2), length: 4, Flags [T]: 200
264
+ 0x0000: 0201 00c8
265
+ Local Pref (5), length: 4, Flags [T]: (0x0064) 100
266
+ 0x0000: 0000 0064
267
+ Mp Reach (14), length: 14, Flags [O]:
268
+ AFI IPv4 (1), SAFI Unicast (1)
269
+ nexthop: 192.168.131.20
270
+ 13.11.5.64/26
271
+ 0x0000: 0001 0104 c0a8 8314 001a 0d0b 0540
272
+
273
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
274
+ 0x0001: 0041 0200 0000 2a40 0304 c0a8 8314 4001
275
+ 0x0002: 0100 4002 0402 0100 c840 0504 0000 0064
276
+ 0x0003: 800e 0e00 0101 04c0 a883 1400 1a0d 0b05
277
+ 0x0004: 40
278
+
279
+
280
+ I, [08:16#19199] INFO -- : BGP::Neighbor RecvKeepalive
281
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Recv Keepalive Message (4), length: 19, [001304]
282
+
283
+ I, [08:16#19199] INFO -- : BGP::Neighbor RecvUpdate
284
+ D, [08:16#19199] DEBUG -- : BGP::Neighbor Recv Update Message (2), length: 23
285
+
286
+
287
+ 0x0000: ffff ffff ffff ffff ffff ffff ffff ffff
288
+ 0x0001: 0017 0200 0000 00
289
+
290
+
291
+ I, [09:08#19199] INFO -- : BGP::Neighbor RecvKeepalive
292
+ D, [09:08#19199] DEBUG -- : BGP::Neighbor Recv Keepalive Message (4), length: 19, [001304]
293
+
294
+ I, [09:16#19199] INFO -- : BGP::Neighbor SendKeepalive
295
+ D, [09:16#19199] DEBUG -- : BGP::Neighbor Send Keepalive Message (4), length: 19, [001304]
296
+
297
+ I, [10:01#19199] INFO -- : BGP::Neighbor RecvKeepalive
298
+ D, [10:01#19199] DEBUG -- : BGP::Neighbor Recv Keepalive Message (4), length: 19, [001304]
@@ -100,4 +100,10 @@ class Open_Test < Test::Unit::TestCase
100
100
  assert open.find(Route_refresh)
101
101
  assert open.find(Add_path)
102
102
  end
103
+ def test_5
104
+ open = Open.new(4,0xffff, 200, '10.0.0.1')
105
+ assert_match /my AS 65535/, open.to_s
106
+ open = Open.new(4,0x1ffff, 200, '10.0.0.1')
107
+ assert_match /my AS 23456/, open.to_s
108
+ end
103
109
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bgp4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Michel Esnault
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-07 00:00:00.000000000 Z
11
+ date: 2014-10-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Best way to play with BGP protocol using ruby
14
14
  email: jesnault@gmail.com
@@ -17,6 +17,61 @@ extensions: []
17
17
  extra_rdoc_files:
18
18
  - LICENSE.txt
19
19
  - README.rdoc
20
+ - bgp/common.rb
21
+ - bgp/iana.rb
22
+ - bgp/io.rb
23
+ - bgp/messages/capability.rb
24
+ - bgp/messages/keepalive.rb
25
+ - bgp/messages/markers.rb
26
+ - bgp/messages/message.rb
27
+ - bgp/messages/messages.rb
28
+ - bgp/messages/notification.rb
29
+ - bgp/messages/open.rb
30
+ - bgp/messages/route_refresh.rb
31
+ - bgp/messages/update.rb
32
+ - bgp/misc/live_feed.rb
33
+ - bgp/neighbor/add_path_cap.rb
34
+ - bgp/neighbor/neighbor.rb
35
+ - bgp/nlris/inet.rb
36
+ - bgp/nlris/label.rb
37
+ - bgp/nlris/labeled.rb
38
+ - bgp/nlris/mapped_ipv4.rb
39
+ - bgp/nlris/nlri.rb
40
+ - bgp/nlris/nlris.rb
41
+ - bgp/nlris/nsap.rb
42
+ - bgp/nlris/prefix.rb
43
+ - bgp/nlris/rd.rb
44
+ - bgp/nlris/vpn.rb
45
+ - bgp/optional_parameters/add_path.rb
46
+ - bgp/optional_parameters/as4.rb
47
+ - bgp/optional_parameters/capabilities.rb
48
+ - bgp/optional_parameters/capability.rb
49
+ - bgp/optional_parameters/dynamic.rb
50
+ - bgp/optional_parameters/graceful_restart.rb
51
+ - bgp/optional_parameters/mbgp.rb
52
+ - bgp/optional_parameters/optional_parameter.rb
53
+ - bgp/optional_parameters/orf.rb
54
+ - bgp/optional_parameters/route_refresh.rb
55
+ - bgp/orfs/orf.rb
56
+ - bgp/orfs/prefix_orf.rb
57
+ - bgp/path_attributes/aggregator.rb
58
+ - bgp/path_attributes/aigp.rb
59
+ - bgp/path_attributes/as_path.rb
60
+ - bgp/path_attributes/atomic_aggregate.rb
61
+ - bgp/path_attributes/attribute.rb
62
+ - bgp/path_attributes/attributes.rb
63
+ - bgp/path_attributes/cluster_list.rb
64
+ - bgp/path_attributes/communities.rb
65
+ - bgp/path_attributes/extended_communities.rb
66
+ - bgp/path_attributes/extended_community.rb
67
+ - bgp/path_attributes/local_pref.rb
68
+ - bgp/path_attributes/mp_reach.rb
69
+ - bgp/path_attributes/mp_unreach.rb
70
+ - bgp/path_attributes/multi_exit_disc.rb
71
+ - bgp/path_attributes/next_hop.rb
72
+ - bgp/path_attributes/origin.rb
73
+ - bgp/path_attributes/originator_id.rb
74
+ - bgp/path_attributes/path_attribute.rb
20
75
  files:
21
76
  - COPYING
22
77
  - LICENSE.txt
@@ -81,6 +136,7 @@ files:
81
136
  - changelog.txt
82
137
  - examples/a_live_feed
83
138
  - examples/ebgp-vyatta-ipv4-ipv6.rb
139
+ - examples/ibgp-ios-asn4bytes.rb
84
140
  - examples/ibgp-vyatta-ipv6.rb
85
141
  - examples/routegen
86
142
  - examples/routegen.yml