Age | Commit message (Collapse) | Author |
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
In case of locating some Ryu-BGPs in the same Topology for BGP/MPLS VPNs :
When same label has been assigned '100 (defalut label)' by each Ryu-BGP, it is difficult to analyze for trouble shooting of RIB for vpnv4 .
Therefore, each Ryu-BGPs should assign different label for vpnv4 prefix according to own label_range .
bgpd> show rib all
Status codes: * valid, > best
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Labels Next Hop Reason Metric LocPrf Path
Family: rtfilter
*> 65001:65010:101 None 0.0.0.0 Only Path ?
Family: vpnv6
Family: vpnv4
*> 65010:101:192.168.104.0/30 [100] 172.16.0.102 Only Path 65002 ?
*> 65010:101:192.168.201.0/24 [43] 192.168.100.101 Only Path 100 65010 65011 i
*> 65010:101:10.10.10.1/32 [38] 192.168.100.101 Only Path 100 65010 65011 ?
*> 65010:101:192.168.103.0/30 [100] 0.0.0.0 Only Path ?
*> 65010:101:192.168.101.0/30 [42] 192.168.100.101 Only Path 100 65010 ?
*> 65010:101:192.168.102.0/30 [40] 192.168.100.101 Only Path 100 65010 ?
*> 65010:101:10.10.10.2/32 [37] 192.168.100.101 Only Path 100 65010 65012 ?
*> 65010:101:192.168.202.0/24 [44] 192.168.100.101 Only Path 100 65010 65012 i
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this patch enables ofctl_rest to get OFPFlowStats messages
filtered by the OFPFlowStatsRequest fields in OpenFlow specification.
usage)
URI: /stats/flow/<dpid>
method: POST
the message body is as follows:
table_id ID of table.
out_port Require matching entries to include this as an output port.
out_group Require matching entries to include this as an output group.
(Not supported in of1.0)
cookie Require matching entries to contain this cookie value.
(Not supported in of1.0)
cookie_mask Mask used to restrict the cookie bits that must match.
(Not supported in of1.0)
match Fields to match.
e.g.)
curl -X POST -d '{"table_id": 0,
"out_port": 2,
"cookie": 1,
"cookie_mask": 1,
"match":{"in_port":1}}'
http://localhost:8080/stats/flow/1
Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
reduced duplicate codes and put together to a static function.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
you can specify listening HOST and PORT by setting env variable
'RYU_BMP_SERVER_HOST' and 'RYU_BMP_SERVER_PORT'.
'RYU_BMP_OUTPUT_FILE' specifes the output file name
'RYU_BMP_FAILED_DUMP' specifes the file name of the error dump
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
reserved field must be 0. this patch add an assertion and
make reserved field invisible when stringified
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
the AddrPrefix which variable 'nlri' has is not limited to
_BinAddrPrefix. this patch enables to encode to/decode from json dict
with various AddrPrefix in 'nlri'.
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
class variable '_class_suffixes' can be used for the same purpose as
'_class_prefixes' but match with the suffix of the class name.
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
_IPAddrPrefix can be inherited by labeled addr prefix.
In that case, variable 'addr' is tuple and not string. so declare to
parse 'addr' in 'ascii' format in _IPAddrPrefix cause following error.
this patch fix this bug.
p = LabelledIPAddrPrefix(28, ([1], '192.168.0.0'))
p.to_jsondict()
Traceback (most recent call last):
File "./parse_labeled_addr_prefix.py", line 11, in <module>
p.to_jsondict()
File "/home/wataru/ryu/ryu/lib/stringify.py", line 210, in to_jsondict
dict_[k] = encode(k, v)
File "/home/wataru/ryu/ryu/lib/stringify.py", line 208, in <lambda>
encode = lambda k, x: self._encode_value(k, x, encode_string)
File "/home/wataru/ryu/ryu/lib/stringify.py", line 155, in
_encode_value
return cls._get_encoder(k, encode_string)(v)
File "/home/wataru/ryu/ryu/lib/stringify.py", line 56, in encode
return unicode(v, 'ascii')
TypeError: coercing to Unicode: need string or buffer, tuple found
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
SubmittingPatches.rst was renamed to CONTRIBUTING.rst.
setup.py sdist will check this dependency.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
When Ryu BGP received 'RouteRefresh' Message from the peering router, BGP session has closed as follows .
DEBUG 2014-08-15 02:20:08,718 speaker 447 Received msg from ('192.168.100.100', '34939') << BGPRouteRefresh(afi=1,demarcation=1,len=23,safi=128,type=5)
DEBUG 2014-08-15 02:20:08,719 speaker 566 Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 560, in _recv_loop
self.data_received(next_bytes)
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 275, in data_received
self._data_received(next_bytes)
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 355, in _data_received
self._handle_msg(msg)
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/speaker.py", line 508, in _handle_msg
self._peer.handle_msg(msg)
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 1585, in handle_msg
self._handle_route_refresh_msg(msg)
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/peer.py", line 1619, in _handle_route_refresh_msg
afi = msg.route_family.afi
AttributeError: 'BGPRouteRefresh' object has no attribute 'route_family'
INFO 2014-08-15 02:20:08,722 peer 1901 Connection to peer 192.168.100.100 lost, reason: 'BGPRouteRefresh' object has no attribute 'route_family' Resetting retry connect loop: False
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
We might want a bgp speaker to talk with multiple bmp servers in the
future so I renamed these functions. Note that currently a speaker can
connect to only one bmp server.
I also update the example code on how to make the speaker to connect
to a bmp server.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
You can't pass ssh.py to run command any more. If you need ssh CLI,
update the bgp config file and then:
ryu run —-config-file /path/to/ryu.conf /path/to/ryu/ryu/services/protocols/application.py
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
implemented draft-ietf-idr-ix-bgp-route-server-05 partially.
you can enable this function like below
> speaker = BGPSpeaker(as_number=64512, router_id='10.10.0.1')
> speaker.neighbor_add('10.0.0.1', 64514, is_route_server_client=True)
> speaker.neighbor_add('10.10.0.2', 64513, is_route_server_client=True)
add multiple rib function is a future work
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
The field of 'Labels' has not displayed in properly because of extracting 'label_list' in python slicing tuples.
INFO:bgpspeaker.api.base:API method operator.show called with args: {'params': ['rib', 'all'], 'format': 'cli'}
Status codes: * valid, > best
Network Labels Next Hop Reason Metric LocPrf Path/Origin
Family: rtfilter
*> 64512:64511:101 None 0.0.0.0 Only Path 2
Family: vpnv6
Family: vpnv4
*> 64511:101:10.10.0.1/32 ([17],) 192.168.100.100 Only Path 0 64511 2
*> 64511:101:10.20.2.0/24 ([100],) 0.0.0.0 Only Path 2
*> 64511:101:10.20.1.0/24 ([100],) 0.0.0.0 Only Path 2
*> 64511:101:10.20.3.0/24 ([100],) 0.0.0.0 Only Path 2
Family: ipv4
Family: ipv6
Reported-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
The field of 'Path(Origin)' has not displayed in properly ,because Origin codes '2 (incomplete)' is not defined in the latest code .
Therfore, I've patched the codes for formatting as follows .
INFO:bgpspeaker.api.base:API method operator.show called with args: {'params': ['rib', 'all'], 'format': 'cli'}
Status codes: * valid, > best
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Labels Next Hop Reason Metric LocPrf Path
Family: rtfilter
*> 64512:64511:101 None 0.0.0.0 Only Path ?
Family: vpnv6
Family: vpnv4
*> 64511:101:10.10.0.1/32 [17] 192.168.100.100 Only Path 0 64511 ?
*> 64511:101:10.20.2.0/24 [100] 0.0.0.0 Only Path ?
*> 64511:101:10.20.1.0/24 [100] 0.0.0.0 Only Path ?
*> 64511:101:10.20.3.0/24 [100] 0.0.0.0 Only Path ?
Family: ipv4
Family: ipv6
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
But the result looks unexpected regarding of show_command .
I can’t find the advertised labels or assigned labels for vpnv4 prefix .
(reference: http://sourceforge.net/p/ryu/mailman/message/32686423/ )
Therfore, I've patched the codes for formatting as follows .
=> needs for fixing labels attribute after that .
INFO:bgpspeaker.api.base:API method operator.show called with args: {'params': ['rib', 'all'], 'format': 'cli'}
Status codes: * valid, > best
Network Labels Next Hop Reason Metric LocPrf Path/Origin
Family: rtfilter
*> 64512:64511:101 None 0.0.0.0 Only Path 2
Family: vpnv6
Family: vpnv4
*> 64511:101:10.10.0.1/32 ([17],) 192.168.100.100 Only Path 0 64511 2
*> 64511:101:10.20.2.0/24 ([100],) 0.0.0.0 Only Path 2
*> 64511:101:10.20.1.0/24 ([100],) 0.0.0.0 Only Path 2
*> 64511:101:10.20.3.0/24 ([100],) 0.0.0.0 Only Path 2
Family: ipv4
Family: ipv6
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
added VPNv6 prefix support.
This patch enables addition and deletion of VPNv6 prefix.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
added VPNv6 route family VRF support.
This patch enables addition and deletion of VPNv6 VRF.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
BMP Peer Down Notification packet must have a per-peer header.
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this parameter will support to display like cli as follows.
Status codes: * valid, > best
Network Next Hop Reason Metric LocPrf Path
VPN: ('64511:101', 'ipv4')
*> 10.20.2.0/24 0.0.0.0 Only Path 2
*> 10.20.1.0/24 0.0.0.0 Only Path 2
*> 10.20.3.0/24 0.0.0.0 Only Path 2
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this parameter will support to display like cli as follows.
Status codes: * valid, > best
Network Next Hop Reason Metric LocPrf Path
*> 10.20.2.0/24 0.0.0.0 Only Path i
*> 10.20.3.0/24 0.0.0.0 Only Path i
*> 10.20.1.0/24 0.0.0.0 Only Path i
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
ofctl_rest is now enable to modify and delete with strict matching.
usage)
URI: /stats/flowentry/modify_strict
/stats/flowentry/delete_strict
method: POST
e.g. )
curl -X POST -d '{"dpid": 1,
"actions":[{"port":3, "type":"OUTPUT"}],
"match":{"in_port":2}}'
http://localhost:8080/stats/flowentry/modify_strict
curl -X POST -d '{"dpid": 1,
"match":{"in_port":2}}'
http://localhost:8080/stats/flowentry/delete_strict
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
The third is fix to a conflict of PEER_NEXT_HOP value in neighbors.py.
There is a conflict between PEER_NEXT_HOP in neighbors.py and NEXT_HOP in api/base.py.
As a result of the conflict, the correct validator for PEER_NEXT_HOP is not used when
neighbir_add is executed.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
MP_REACH_NLRI path attribute
The second is patch to add or skip RD 0:0 label for the next_hop address in MP_REACH_NLRI attribute.
According to RFC, next_hop address seems to be required to contain RD of 0 when advertise VPN prefix.
This is defined in RFC 4659(3.2.1.1. BGP Speaker Requesting IPv6 Transport) for VPN-IPv6
and in RFC 4364(4.3.2. Route Distribution Among PEs by BGP) for VPN-IPv4.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Fujita-san,
thank you for your comment and finding the bug that causes test case failure.
I fixed the second and resend the whole patch.
The first is the addition of site_of_origins parameter to neighbor_add and
vrf_add method and fixes to some import error.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
now ryu bgp can send internal information through BGP monitoring protocol
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
implements I-D grow-bmp-07
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Reported-by: Arne Goetje <arne_goetje@accton.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Reported-by: Arne Goetje <arne_goetje@accton.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Reported-by: Arne Goetje <arne_goetje@accton.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Reported-by: Arne Goetje <arne_goetje@accton.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Reported-by: Arne Goetje <arne_goetje@accton.com>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
previous implementation apply all filters to all paths regardless of
its route family. this implementation cause error like one shown below.
ryu.lib.hub l.60 | ERROR | hub: uncaught exception:
Traceback (most recent call last):
File "/home/wataru/ryu/ryu/lib/hub.py", line 52, in _launch
func(*args, **kwargs)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 650,
in _process_outgoing_msg_list
self._send_outgoing_route(outgoing_msg)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 599,
in _send_outgoing_route
block, blocked_cause = self._apply_out_filter(path)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 505,
in _apply_out_filter
return self._apply_filter(self._out_filters, path)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 490,
in _apply_filter
policy, is_matched = filter_.evaluate(path)
File "/home/wataru/ryu/ryu/services/protocols/bgp/info_base/base.py",
line 953, in evaluate
net = netaddr.IPNetwork(prefix.formatted_nlri_str)
File "/usr/local/lib/python2.7/dist-packages/netaddr/ip/__init__.py",
line 941, in __init__
raise AddrFormatError('invalid IPNetwork %s' % addr)
AddrFormatError: invalid IPNetwork 100:100:20.0.0.0/24
To fix this bug, this patch introduce the Ipv4PrefixFilter and Ipv6PrefixFilter
class which is only applied to the ipv4 path and ipv6 path.
other condition bug related to applying filter is also fixed.
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
for BGPPathAttributeMpUnreachNLRI, use 'withdrawn_routes' instead of
'nlri_list'
bgpspeaker.speaker l.566 | DEBUG | Traceback (most recent
call last):
File "/home/wataru/ryu/ryu/services/protocols/bgp/speaker.py", line
560, in _recv_loop
self.data_received(next_bytes)
File "/home/wataru/ryu/ryu/services/protocols/bgp/speaker.py", line
275, in data_received
self._data_received(next_bytes)
File "/home/wataru/ryu/ryu/services/protocols/bgp/speaker.py", line
355, in _data_received
self._handle_msg(msg)
File "/home/wataru/ryu/ryu/services/protocols/bgp/speaker.py", line
508, in _handle_msg
self._peer.handle_msg(msg)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 1567,
in handle_msg
self._handle_update_msg(msg)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 1234,
in _handle_update_msg
self._extract_and_handle_mpbgp_withdraws(mp_unreach_attr)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 1496,
in _extract_and_handle_mpbgp_withdraws
w_nlris = mp_unreach_attr.nlri_list
AttributeError: 'BGPPathAttributeMpUnreachNLRI' object has no attribute
'nlri_list'
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|