bgp4r 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/README.rdoc +1 -10
  2. data/bgp/io.rb +4 -2
  3. data/bgp/messages/capability.rb +176 -0
  4. data/bgp/messages/keepalive.rb +30 -0
  5. data/bgp/messages/markers.rb +10 -0
  6. data/bgp/messages/message.rb +85 -0
  7. data/bgp/messages/messages.rb +17 -0
  8. data/bgp/messages/notification.rb +116 -0
  9. data/bgp/messages/open.rb +117 -0
  10. data/bgp/messages/route_refresh.rb +181 -0
  11. data/bgp/messages/update.rb +148 -0
  12. data/bgp/neighbor.rb +20 -11
  13. data/bgp/nlris/inet.rb +18 -0
  14. data/bgp/{label.rb → nlris/label.rb} +1 -1
  15. data/bgp/nlris/labeled.rb +39 -0
  16. data/bgp/nlris/nlri.rb +154 -0
  17. data/bgp/{attributes.rb → nlris/nlris.rb} +11 -13
  18. data/bgp/nlris/prefix.rb +33 -0
  19. data/bgp/{rd.rb → nlris/rd.rb} +1 -1
  20. data/bgp/nlris/vpn.rb +68 -0
  21. data/bgp/optional_parameters/as4.rb +59 -0
  22. data/bgp/optional_parameters/capabilities.rb +13 -0
  23. data/bgp/optional_parameters/capability.rb +145 -0
  24. data/bgp/optional_parameters/dynamic.rb +37 -0
  25. data/bgp/optional_parameters/graceful_restart.rb +116 -0
  26. data/bgp/optional_parameters/mbgp.rb +97 -0
  27. data/bgp/optional_parameters/optional_parameter.rb +76 -0
  28. data/bgp/optional_parameters/orf.rb +90 -0
  29. data/bgp/optional_parameters/route_refresh.rb +36 -0
  30. data/bgp/{prefix_orf.rb → orfs/prefix_orf.rb} +4 -10
  31. data/bgp/{aggregator.rb → path_attributes/aggregator.rb} +2 -2
  32. data/bgp/{as_path.rb → path_attributes/as_path.rb} +2 -2
  33. data/bgp/{atomic_aggregate.rb → path_attributes/atomic_aggregate.rb} +2 -2
  34. data/bgp/{attribute.rb → path_attributes/attribute.rb} +2 -2
  35. data/bgp/path_attributes/attributes.rb +21 -0
  36. data/bgp/{cluster_list.rb → path_attributes/cluster_list.rb} +2 -2
  37. data/bgp/{communities.rb → path_attributes/communities.rb} +2 -2
  38. data/bgp/{extended_communities.rb → path_attributes/extended_communities.rb} +3 -3
  39. data/bgp/{extended_community.rb → path_attributes/extended_community.rb} +1 -1
  40. data/bgp/{local_pref.rb → path_attributes/local_pref.rb} +2 -2
  41. data/bgp/{mp_reach.rb → path_attributes/mp_reach.rb} +3 -69
  42. data/bgp/path_attributes/mp_unreach.rb +97 -0
  43. data/bgp/{multi_exit_disc.rb → path_attributes/multi_exit_disc.rb} +2 -2
  44. data/bgp/{next_hop.rb → path_attributes/next_hop.rb} +2 -2
  45. data/bgp/{origin.rb → path_attributes/origin.rb} +2 -2
  46. data/bgp/{originator_id.rb → path_attributes/originator_id.rb} +2 -2
  47. data/bgp/{path_attribute.rb → path_attributes/path_attribute.rb} +6 -7
  48. data/bgp4r.gemspec +127 -67
  49. data/bgp4r.rb +5 -25
  50. data/examples/routegen +1 -1
  51. data/examples/routegen.yml +21 -5
  52. data/examples/simple.rb +4 -4
  53. data/examples/unit-testing/malformed_update.rb +1 -1
  54. data/examples/unit-testing/unknown_transitive_attr.rb +18 -10
  55. data/test/messages/capability_test.rb +113 -0
  56. data/test/messages/keepalive_test.rb +34 -0
  57. data/test/messages/markers_test.rb +33 -0
  58. data/test/messages/message_test.rb +43 -0
  59. data/test/messages/notification_test.rb +49 -0
  60. data/test/messages/open_test.rb +98 -0
  61. data/test/messages/route_refresh_test.rb +77 -0
  62. data/test/messages/update_test.rb +133 -0
  63. data/test/neighbor_test.rb +8 -9
  64. data/test/nlris/inet_test.rb +43 -0
  65. data/test/{label_test.rb → nlris/labeled_test.rb} +1 -1
  66. data/test/{nlri_test.rb → nlris/nlri_test.rb} +5 -1
  67. data/test/{rd_test.rb → nlris/rd_test.rb} +1 -2
  68. data/test/optional_parameters/as4_test.rb +34 -0
  69. data/test/optional_parameters/capability_test.rb +69 -0
  70. data/test/optional_parameters/dynamic_test.rb +34 -0
  71. data/test/optional_parameters/graceful_restart_test.rb +23 -0
  72. data/test/optional_parameters/mbgp_test.rb +35 -0
  73. data/test/optional_parameters/optional_parameter_test.rb +51 -0
  74. data/test/optional_parameters/orf_test.rb +42 -0
  75. data/test/optional_parameters/route_refresh_test.rb +32 -0
  76. data/test/{prefix_orf_test.rb → orfs/prefix_orf_test.rb} +2 -1
  77. data/test/{aggregator_test.rb → path_attributes/aggregator_test.rb} +1 -1
  78. data/test/{as_path_test.rb → path_attributes/as_path_test.rb} +1 -1
  79. data/test/{atomic_aggregate_test.rb → path_attributes/atomic_aggregate_test.rb} +1 -1
  80. data/test/{attribute_test.rb → path_attributes/attribute_test.rb} +2 -2
  81. data/test/{cluster_list_test.rb → path_attributes/cluster_list_test.rb} +1 -1
  82. data/test/{communities_test.rb → path_attributes/communities_test.rb} +1 -1
  83. data/test/{extended_communities_test.rb → path_attributes/extended_communities_test.rb} +1 -1
  84. data/test/{extended_community_test.rb → path_attributes/extended_community_test.rb} +1 -1
  85. data/test/{local_pref_test.rb → path_attributes/local_pref_test.rb} +1 -1
  86. data/test/{mp_reach_test.rb → path_attributes/mp_reach_test.rb} +1 -37
  87. data/test/path_attributes/mp_unreach_test.rb +67 -0
  88. data/test/{multi_exit_disc_test.rb → path_attributes/multi_exit_disc_test.rb} +1 -1
  89. data/test/{next_hop_test.rb → path_attributes/next_hop_test.rb} +1 -1
  90. data/test/{origin_test.rb → path_attributes/origin_test.rb} +2 -1
  91. data/test/{originator_id_test.rb → path_attributes/originator_id_test.rb} +1 -1
  92. data/test/{path_attribute_test.rb → path_attributes/path_attribute_test.rb} +2 -2
  93. metadata +122 -67
  94. data/bgp/message.rb +0 -921
  95. data/bgp/nlri.rb +0 -303
  96. data/bgp/version.rb +0 -3
  97. data/examples/unit-testing/keepalive_set_to_zeo.rb +0 -64
  98. data/test/message_test.rb +0 -347
  99. /data/bgp/{orf.rb → orfs/orf.rb} +0 -0
@@ -0,0 +1,51 @@
1
+ #--
2
+ # Copyright 2010 Jean-Michel Esnault.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #
6
+ #
7
+ # This file is part of BGP4R.
8
+ #
9
+ # BGP4R is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # BGP4R is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
+ #++
22
+
23
+ require 'test/unit'
24
+ require 'bgp4r'
25
+
26
+ class Optional_parameter_Test < Test::Unit::TestCase
27
+ include BGP
28
+ def test_draft_ietf_idr_ext_opt_param_01_encoding
29
+ octet = ''
30
+ def octet.encode
31
+ [0xab].pack('C')
32
+ end
33
+ assert_match /^(ff){16}011b01040064007801010101fe(ab){254}$/,
34
+ Open.new(4, 100, 120, '1.1.1.1', *([octet]*254)).to_shex
35
+ assert_match /^(ff){16}011c01040064007801010101ff(ab){255}$/,
36
+ Open.new(4, 100, 120, '1.1.1.1', *([octet]*255)).to_shex
37
+ assert_match /^(ff){16}012001040064007801010101ffff0100(ab){256}$/,
38
+ Open.new(4, 100, 120, '1.1.1.1', *([octet]*256)).to_shex
39
+ assert_match /^(ff){16}012101040064007801010101ffff0101(ab){257}$/,
40
+ Open.new(4, 100, 120, '1.1.1.1', *([octet]*257)).to_shex
41
+ end
42
+ def test_draft_ietf_idr_ext_opt_param_01_parsing
43
+ mbgp = OPT_PARM::CAP::Mbgp.new(1,1)
44
+ open1 = Open.new(4, 100, 120, '1.1.1.1', *[mbgp]*100)
45
+ open2 = Open.new(4, 100, 120, '1.1.1.1', *[mbgp]*10)
46
+ assert_match /^(ff){16}034001040064007801010101\s*ffff0320\s*0206010400010001/, open1.to_shex
47
+ assert_match /^(ff){16}006d01040064007801010101\s*50\s*0206010400010001/, open2.to_shex
48
+ assert_equal Open.new(open1).to_shex, open1.to_shex
49
+ assert_equal Open.new(open2).to_shex, open2.to_shex
50
+ end
51
+ end
@@ -0,0 +1,42 @@
1
+ #--
2
+ # Copyright 2010 Jean-Michel Esnault.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #
6
+ #
7
+ # This file is part of BGP4R.
8
+ #
9
+ # BGP4R is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # BGP4R is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
+ #++
22
+
23
+ require 'test/unit'
24
+ require 'bgp4r'
25
+
26
+ class Orf_cap_Test < Test::Unit::TestCase
27
+ include BGP::OPT_PARM::CAP
28
+ def test_1
29
+ ent1 = Orf::Entry.new(1,1,[1,1],[2,1],[3,1])
30
+ assert_equal('0001000103010102010301', ent1.to_shex)
31
+ ent2 = Orf::Entry.new(1,2,[1,1],[2,1],[3,1])
32
+ assert_equal('0001000203010102010301', ent2.to_shex)
33
+ ent3 = Orf::Entry.new(ent1.encode)
34
+ assert_equal(ent1.encode, ent3.encode)
35
+ orf = Orf.new
36
+ orf.add(ent1)
37
+ orf.add(ent2)
38
+ assert_equal('0218031600010001030101020103010001000203010102010301', orf.to_shex)
39
+ orf2 = Orf.new(orf.encode)
40
+ assert_equal(orf.encode, orf2.encode)
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ #--
2
+ # Copyright 2010 Jean-Michel Esnault.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #
6
+ #
7
+ # This file is part of BGP4R.
8
+ #
9
+ # BGP4R is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # BGP4R is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
+ #++
22
+
23
+ require 'test/unit'
24
+ require 'bgp4r'
25
+
26
+ class Route_refresh_cap_Test < Test::Unit::TestCase
27
+ include BGP::OPT_PARM::CAP
28
+ def test_1
29
+ assert_equal('02020200', Route_refresh.new.to_shex)
30
+ assert_equal('02028000', Route_refresh.new(128).to_shex)
31
+ end
32
+ end
@@ -20,7 +20,8 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/prefix_orf'
23
+ require 'bgp4r'
24
+ require 'bgp/orfs/prefix_orf'
24
25
  require 'test/unit'
25
26
  class Prefix_orf_Test < Test::Unit::TestCase
26
27
  include BGP
@@ -21,7 +21,7 @@
21
21
  #++
22
22
 
23
23
 
24
- require 'bgp/aggregator'
24
+ require 'bgp/path_attributes/aggregator'
25
25
  require 'test/unit'
26
26
  class Aggregator_Test < Test::Unit::TestCase
27
27
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/as_path'
23
+ require 'bgp/path_attributes/as_path'
24
24
  require 'test/unit'
25
25
 
26
26
  class Segment_Test < Test::Unit::TestCase
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require "bgp/atomic_aggregate"
23
+ require "bgp/path_attributes/atomic_aggregate"
24
24
 
25
25
  require 'test/unit'
26
26
  class Atomic_aggregate_Test < Test::Unit::TestCase
@@ -20,8 +20,8 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/common'
24
- require 'bgp/path_attribute'
23
+ require 'bgp4r'
24
+ require 'bgp/path_attributes/path_attribute'
25
25
  require 'test/unit'
26
26
 
27
27
  class ATTR_Test < Test::Unit::TestCase
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/cluster_list'
23
+ require 'bgp/path_attributes/cluster_list'
24
24
  require 'test/unit'
25
25
  class Cluster_list_Test < Test::Unit::TestCase
26
26
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/communities'
23
+ require 'bgp/path_attributes/communities'
24
24
 
25
25
  require 'test/unit'
26
26
  class Community_Test < Test::Unit::TestCase
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/extended_communities'
23
+ require 'bgp/path_attributes/extended_communities'
24
24
  require 'test/unit'
25
25
  class Extended_communitiesTest < Test::Unit::TestCase
26
26
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/extended_community'
23
+ require 'bgp/path_attributes/extended_community'
24
24
  require 'test/unit'
25
25
  class Extended_community_Test < Test::Unit::TestCase
26
26
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/local_pref'
23
+ require 'bgp/path_attributes/local_pref'
24
24
  require 'test/unit'
25
25
  class Local_pref_Test < Test::Unit::TestCase
26
26
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/mp_reach'
23
+ require 'bgp4r'
24
24
  require 'test/unit'
25
25
 
26
26
  class Mp_reach_Test < Test::Unit::TestCase
@@ -105,39 +105,3 @@ class Mp_reach_Test < Test::Unit::TestCase
105
105
  assert_equal(Mp_unreach, Mp_unreach.new(mpr.new_unreach).class)
106
106
  end
107
107
  end
108
-
109
- class Mp_unreach_Test < Test::Unit::TestCase
110
- include BGP
111
- def test_1
112
- mpur = Mp_unreach.new(:safi=>1, :prefix=>['10.0.0.0/16', '10.1.0.0/16'])
113
- assert_raise(ArgumentError) { Mp_unreach.new }
114
- end
115
-
116
- def test_2
117
- mpur = Mp_unreach.new(:safi=>2, :prefix=>['192.168.1.0/24', '192.168.2.0/24'])
118
- assert_equal('800f0b00010218c0a80118c0a802', mpur.to_shex)
119
-
120
- mpur = Mp_unreach.new(:safi=>2, :prefix=>['2007:1::/64', '2007:2::/64','2007:3::/64'])
121
- assert_equal('800f1e000202402007000100000000402007000200000000402007000300000000', mpur.to_shex)
122
-
123
- #mpur = Mp_unreach.new(:safi=>2, :prefix=>['2007:1::/64, 101', '2007:2::/64,102','2007:3::/64, 103'])
124
- mpur = Mp_unreach.new(:safi=>4, :nlri=> [
125
- {:prefix=>'2007:1::/64', :label=> 101},
126
- {:prefix=>'2007:2::/64', :label=> 102},
127
- {:prefix=>'2007:3::/64', :label=> 103},])
128
- assert_equal('800f27000204580006512007000100000000580006612007000200000000580006712007000300000000', mpur.to_shex)
129
- assert_match(/^800f..000204/,mpur.to_shex)
130
- assert_match(/58000651200700010000000058/,mpur.to_shex)
131
- assert_match(/58000661200700020000000058/,mpur.to_shex)
132
- assert_match(/580006712007000300000000$/,mpur.to_shex)
133
-
134
- mpur = Mp_unreach.new(:safi=>128, :nlri=> [
135
- {:rd=> Rd.new(100,100), :prefix=> Prefix.new('192.168.1.0/24'), :label=>101},
136
- {:rd=> Rd.new(100,100), :prefix=> Prefix.new('192.168.2.0/24'), :label=>102},
137
- {:rd=> Rd.new(100,100), :prefix=> Prefix.new('192.168.3.0/24'), :label=>103},])
138
- assert_match(/^800f..000180/,mpur.to_shex)
139
- assert_equal("700006510000006400000064c0a801",mpur.nlris[0].to_shex)
140
- assert_equal("700006610000006400000064c0a802",mpur.nlris[1].to_shex)
141
-
142
- end
143
- end
@@ -0,0 +1,67 @@
1
+ #--
2
+ # Copyright 2008, 2009 Jean-Michel Esnault.
3
+ # All rights reserved.
4
+ # See LICENSE.txt for permissions.
5
+ #
6
+ #
7
+ # This file is part of BGP4R.
8
+ #
9
+ # BGP4R is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # BGP4R is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
+ #++
22
+
23
+ require 'bgp4r'
24
+ require 'test/unit'
25
+
26
+ class Mp_unreach_Test < Test::Unit::TestCase
27
+ include BGP
28
+ def test_1
29
+ mpur = Mp_unreach.new(:safi=>1, :prefix=>['10.0.0.0/16', '10.1.0.0/16'])
30
+ assert_raise(ArgumentError) { Mp_unreach.new }
31
+ end
32
+
33
+ def test_2
34
+ mpur = Mp_unreach.new(:safi=>2, :prefix=>['192.168.1.0/24', '192.168.2.0/24'])
35
+ assert_equal('800f0b00010218c0a80118c0a802', mpur.to_shex)
36
+
37
+ mpur = Mp_unreach.new(:safi=>2, :prefix=>['2007:1::/64', '2007:2::/64','2007:3::/64'])
38
+ assert_equal('800f1e000202402007000100000000402007000200000000402007000300000000', mpur.to_shex)
39
+
40
+ #mpur = Mp_unreach.new(:safi=>2, :prefix=>['2007:1::/64, 101', '2007:2::/64,102','2007:3::/64, 103'])
41
+ mpur = Mp_unreach.new(:safi=>4, :nlri=> [
42
+ {:prefix=>'2007:1::/64', :label=> 101},
43
+ {:prefix=>'2007:2::/64', :label=> 102},
44
+ {:prefix=>'2007:3::/64', :label=> 103},])
45
+ assert_equal('800f27000204580006512007000100000000580006612007000200000000580006712007000300000000', mpur.to_shex)
46
+ assert_match(/^800f..000204/,mpur.to_shex)
47
+ assert_match(/58000651200700010000000058/,mpur.to_shex)
48
+ assert_match(/58000661200700020000000058/,mpur.to_shex)
49
+ assert_match(/580006712007000300000000$/,mpur.to_shex)
50
+
51
+ mpur = Mp_unreach.new(:safi=>128, :nlri=> [
52
+ {:rd=> Rd.new(100,100), :prefix=> Prefix.new('192.168.1.0/24'), :label=>101},
53
+ {:rd=> Rd.new(100,100), :prefix=> Prefix.new('192.168.2.0/24'), :label=>102},
54
+ {:rd=> Rd.new(100,100), :prefix=> Prefix.new('192.168.3.0/24'), :label=>103},])
55
+ assert_match(/^800f..000180/,mpur.to_shex)
56
+ assert_equal("700006510000006400000064c0a801",mpur.nlris[0].to_shex)
57
+ assert_equal("700006610000006400000064c0a802",mpur.nlris[1].to_shex)
58
+
59
+ end
60
+
61
+ def test_3
62
+ assert_equal '800f03000104', Mp_unreach.new(:afi=>1, :safi=>4).to_shex
63
+ assert_equal '800f03000180', Mp_unreach.new(:afi=>1, :safi=>128).to_shex
64
+ assert_equal '800f03000102', Mp_unreach.new(:afi=>1, :safi=>2).to_shex
65
+ end
66
+
67
+ end
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require "bgp/multi_exit_disc"
23
+ require "bgp/path_attributes/multi_exit_disc"
24
24
  require 'test/unit'
25
25
  class Multi_exit_disc_Test < Test::Unit::TestCase
26
26
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/next_hop'
23
+ require 'bgp/path_attributes/next_hop'
24
24
  require 'test/unit'
25
25
  class Next_hop_Test < Test::Unit::TestCase
26
26
  include BGP
@@ -20,7 +20,8 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/origin'
23
+ require 'bgp4r'
24
+ # require 'bgp/path_attributes/origin'
24
25
  require 'test/unit'
25
26
  class Origin_Test < Test::Unit::TestCase
26
27
  include BGP
@@ -20,7 +20,7 @@
20
20
  # along with BGP4R. If not, see <http://www.gnu.org/licenses/>.
21
21
  #++
22
22
 
23
- require 'bgp/originator_id'
23
+ require 'bgp/path_attributes/originator_id'
24
24
  require 'test/unit'
25
25
  class Originator_id_Test < Test::Unit::TestCase
26
26
  include BGP
@@ -21,7 +21,7 @@
21
21
  #++
22
22
 
23
23
  require 'test/unit'
24
- require 'bgp/path_attribute'
24
+ require 'bgp/path_attributes/path_attribute'
25
25
 
26
26
  class Path_attribute_Test < Test::Unit::TestCase # :nodoc:
27
27
  include BGP
@@ -124,7 +124,7 @@ class Path_attribute_Test < Test::Unit::TestCase # :nodoc:
124
124
 
125
125
  end
126
126
 
127
- def test_4
127
+ def test_5
128
128
  s = '4001010040020a0202000000c80000006440030428000101c0080c0137003b051f00010af50040'
129
129
  sbin = [s].pack('H*')
130
130
  assert_instance_of(Origin, attr = Attr.factory(sbin))
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 8
9
- version: 0.0.8
8
+ - 9
9
+ version: 0.0.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jean-Michel Esnault
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-30 00:00:00 -07:00
17
+ date: 2010-10-12 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -31,64 +31,102 @@ files:
31
31
  - COPYING
32
32
  - LICENSE.txt
33
33
  - README.rdoc
34
- - bgp/aggregator.rb
35
- - bgp/as_path.rb
36
- - bgp/atomic_aggregate.rb
37
- - bgp/attribute.rb
38
- - bgp/attributes.rb
39
- - bgp/cluster_list.rb
40
34
  - bgp/common.rb
41
- - bgp/communities.rb
42
- - bgp/extended_communities.rb
43
- - bgp/extended_community.rb
44
35
  - bgp/iana.rb
45
36
  - bgp/io.rb
46
- - bgp/label.rb
47
- - bgp/local_pref.rb
48
- - bgp/message.rb
49
- - bgp/mp_reach.rb
50
- - bgp/multi_exit_disc.rb
37
+ - bgp/messages/capability.rb
38
+ - bgp/messages/keepalive.rb
39
+ - bgp/messages/markers.rb
40
+ - bgp/messages/message.rb
41
+ - bgp/messages/messages.rb
42
+ - bgp/messages/notification.rb
43
+ - bgp/messages/open.rb
44
+ - bgp/messages/route_refresh.rb
45
+ - bgp/messages/update.rb
51
46
  - bgp/neighbor.rb
52
- - bgp/next_hop.rb
53
- - bgp/nlri.rb
54
- - bgp/orf.rb
55
- - bgp/origin.rb
56
- - bgp/originator_id.rb
57
- - bgp/path_attribute.rb
58
- - bgp/prefix_orf.rb
59
- - bgp/rd.rb
60
- - bgp/version.rb
47
+ - bgp/nlris/inet.rb
48
+ - bgp/nlris/label.rb
49
+ - bgp/nlris/labeled.rb
50
+ - bgp/nlris/nlri.rb
51
+ - bgp/nlris/nlris.rb
52
+ - bgp/nlris/prefix.rb
53
+ - bgp/nlris/rd.rb
54
+ - bgp/nlris/vpn.rb
55
+ - bgp/optional_parameters/as4.rb
56
+ - bgp/optional_parameters/capabilities.rb
57
+ - bgp/optional_parameters/capability.rb
58
+ - bgp/optional_parameters/dynamic.rb
59
+ - bgp/optional_parameters/graceful_restart.rb
60
+ - bgp/optional_parameters/mbgp.rb
61
+ - bgp/optional_parameters/optional_parameter.rb
62
+ - bgp/optional_parameters/orf.rb
63
+ - bgp/optional_parameters/route_refresh.rb
64
+ - bgp/orfs/orf.rb
65
+ - bgp/orfs/prefix_orf.rb
66
+ - bgp/path_attributes/aggregator.rb
67
+ - bgp/path_attributes/as_path.rb
68
+ - bgp/path_attributes/atomic_aggregate.rb
69
+ - bgp/path_attributes/attribute.rb
70
+ - bgp/path_attributes/attributes.rb
71
+ - bgp/path_attributes/cluster_list.rb
72
+ - bgp/path_attributes/communities.rb
73
+ - bgp/path_attributes/extended_communities.rb
74
+ - bgp/path_attributes/extended_community.rb
75
+ - bgp/path_attributes/local_pref.rb
76
+ - bgp/path_attributes/mp_reach.rb
77
+ - bgp/path_attributes/mp_unreach.rb
78
+ - bgp/path_attributes/multi_exit_disc.rb
79
+ - bgp/path_attributes/next_hop.rb
80
+ - bgp/path_attributes/origin.rb
81
+ - bgp/path_attributes/originator_id.rb
82
+ - bgp/path_attributes/path_attribute.rb
61
83
  - bgp4r.gemspec
62
84
  - bgp4r.rb
63
85
  - examples/routegen
64
86
  - examples/routegen.yml
65
87
  - examples/simple.rb
66
- - examples/unit-testing/keepalive_set_to_zeo.rb
67
88
  - examples/unit-testing/malformed_update.rb
68
89
  - examples/unit-testing/prepend_aspath.rb
69
90
  - examples/unit-testing/unknown_transitive_attr.rb
70
- - test/aggregator_test.rb
71
- - test/as_path_test.rb
72
- - test/atomic_aggregate_test.rb
73
- - test/attribute_test.rb
74
- - test/cluster_list_test.rb
75
91
  - test/common_test.rb
76
- - test/communities_test.rb
77
- - test/extended_communities_test.rb
78
- - test/extended_community_test.rb
79
- - test/label_test.rb
80
- - test/local_pref_test.rb
81
- - test/message_test.rb
82
- - test/mp_reach_test.rb
83
- - test/multi_exit_disc_test.rb
92
+ - test/messages/capability_test.rb
93
+ - test/messages/keepalive_test.rb
94
+ - test/messages/markers_test.rb
95
+ - test/messages/message_test.rb
96
+ - test/messages/notification_test.rb
97
+ - test/messages/open_test.rb
98
+ - test/messages/route_refresh_test.rb
99
+ - test/messages/update_test.rb
84
100
  - test/neighbor_test.rb
85
- - test/next_hop_test.rb
86
- - test/nlri_test.rb
87
- - test/origin_test.rb
88
- - test/originator_id_test.rb
89
- - test/path_attribute_test.rb
90
- - test/prefix_orf_test.rb
91
- - test/rd_test.rb
101
+ - test/nlris/inet_test.rb
102
+ - test/nlris/labeled_test.rb
103
+ - test/nlris/nlri_test.rb
104
+ - test/nlris/rd_test.rb
105
+ - test/optional_parameters/as4_test.rb
106
+ - test/optional_parameters/capability_test.rb
107
+ - test/optional_parameters/dynamic_test.rb
108
+ - test/optional_parameters/graceful_restart_test.rb
109
+ - test/optional_parameters/mbgp_test.rb
110
+ - test/optional_parameters/optional_parameter_test.rb
111
+ - test/optional_parameters/orf_test.rb
112
+ - test/optional_parameters/route_refresh_test.rb
113
+ - test/orfs/prefix_orf_test.rb
114
+ - test/path_attributes/aggregator_test.rb
115
+ - test/path_attributes/as_path_test.rb
116
+ - test/path_attributes/atomic_aggregate_test.rb
117
+ - test/path_attributes/attribute_test.rb
118
+ - test/path_attributes/cluster_list_test.rb
119
+ - test/path_attributes/communities_test.rb
120
+ - test/path_attributes/extended_communities_test.rb
121
+ - test/path_attributes/extended_community_test.rb
122
+ - test/path_attributes/local_pref_test.rb
123
+ - test/path_attributes/mp_reach_test.rb
124
+ - test/path_attributes/mp_unreach_test.rb
125
+ - test/path_attributes/multi_exit_disc_test.rb
126
+ - test/path_attributes/next_hop_test.rb
127
+ - test/path_attributes/origin_test.rb
128
+ - test/path_attributes/originator_id_test.rb
129
+ - test/path_attributes/path_attribute_test.rb
92
130
  has_rdoc: true
93
131
  homepage: http://github.com/jesnault/bgp4r/tree/master
94
132
  licenses: []
@@ -125,25 +163,42 @@ signing_key:
125
163
  specification_version: 3
126
164
  summary: A BGP-4 Ruby Library
127
165
  test_files:
128
- - test/aggregator_test.rb
129
- - test/as_path_test.rb
130
- - test/atomic_aggregate_test.rb
131
- - test/attribute_test.rb
132
- - test/cluster_list_test.rb
133
166
  - test/common_test.rb
134
- - test/communities_test.rb
135
- - test/extended_communities_test.rb
136
- - test/extended_community_test.rb
137
- - test/label_test.rb
138
- - test/local_pref_test.rb
139
- - test/message_test.rb
140
- - test/mp_reach_test.rb
141
- - test/multi_exit_disc_test.rb
167
+ - test/messages/capability_test.rb
168
+ - test/messages/keepalive_test.rb
169
+ - test/messages/markers_test.rb
170
+ - test/messages/message_test.rb
171
+ - test/messages/notification_test.rb
172
+ - test/messages/open_test.rb
173
+ - test/messages/route_refresh_test.rb
174
+ - test/messages/update_test.rb
142
175
  - test/neighbor_test.rb
143
- - test/next_hop_test.rb
144
- - test/nlri_test.rb
145
- - test/origin_test.rb
146
- - test/originator_id_test.rb
147
- - test/path_attribute_test.rb
148
- - test/prefix_orf_test.rb
149
- - test/rd_test.rb
176
+ - test/nlris/inet_test.rb
177
+ - test/nlris/labeled_test.rb
178
+ - test/nlris/nlri_test.rb
179
+ - test/nlris/rd_test.rb
180
+ - test/optional_parameters/as4_test.rb
181
+ - test/optional_parameters/capability_test.rb
182
+ - test/optional_parameters/dynamic_test.rb
183
+ - test/optional_parameters/graceful_restart_test.rb
184
+ - test/optional_parameters/mbgp_test.rb
185
+ - test/optional_parameters/optional_parameter_test.rb
186
+ - test/optional_parameters/orf_test.rb
187
+ - test/optional_parameters/route_refresh_test.rb
188
+ - test/orfs/prefix_orf_test.rb
189
+ - test/path_attributes/aggregator_test.rb
190
+ - test/path_attributes/as_path_test.rb
191
+ - test/path_attributes/atomic_aggregate_test.rb
192
+ - test/path_attributes/attribute_test.rb
193
+ - test/path_attributes/cluster_list_test.rb
194
+ - test/path_attributes/communities_test.rb
195
+ - test/path_attributes/extended_communities_test.rb
196
+ - test/path_attributes/extended_community_test.rb
197
+ - test/path_attributes/local_pref_test.rb
198
+ - test/path_attributes/mp_reach_test.rb
199
+ - test/path_attributes/mp_unreach_test.rb
200
+ - test/path_attributes/multi_exit_disc_test.rb
201
+ - test/path_attributes/next_hop_test.rb
202
+ - test/path_attributes/origin_test.rb
203
+ - test/path_attributes/originator_id_test.rb
204
+ - test/path_attributes/path_attribute_test.rb