Age | Commit message (Collapse) | Author |
|
add local preference support in bgp. It is possible to apply local
preference to specific paths by using AttributeMap.
Unfortunately this patch supports only IPv4 path and I'm going to
start writing patches for other route families after this.
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>
|
|
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
You can specify the port number in the options when sw test tool is started.
The example is as follows:
ryu-manager --test-switch-target_recv_port 4 (default:1)
--test-switch-target_send_port_1 5 (default:2)
--test-switch-target_send_port_2 6 (default:3)
--test-switch-tester_send_port 7 (default:1)
--test-switch-tester_recv_port_1 8 (default:2)
--test-switch-tester_recv_port_2 9 (default:3)
ryu/tests/switch/tester.py
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
following fields is not set at mod_flow_stats command:
* out_port, buffer_id
this patch fixes this problem.
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
When packet_in_filter discards a packet, it is always logging. However,
it may be felt noisy.
Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Remove the wrong way to get IP and bind with it.
Binding with '0.0.0.0' and listen on all host.
Update and fix typos in the snort_integrate.rst document.
Fix the problem about pigrelay reconnect to ryu will not be accepted.
Pigrelay is a program running on Snort that receive Snort alert
from UNIX socket and send to Ryu via network socket.
Signed-off-by: Che-Wei Lin <linton.tw@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
When net_ctrl has received 'core.start' method through RPC-Session, if has occurred ERROR as follows .
(rpc-client)
$ PYTHONPATH=. ./rpc_cli.py --peers=bgps=localhost:50002
(Cmd) request bgps core.start [{'router_id': '10.0.0.7', 'local_as': 65000}]
RPC ERROR 500.1 - 'waiter'
(Ryu-Bgp)
.. snip
DEBUG 2014-09-06 08:29:03,160 net_ctrl 337 NetworkController started listening for connections...
DEBUG 2014-09-06 08:29:21,277 base 345 Connect request received from client for port 127.0.0.1:45654
CRITICAL 2014-09-06 08:29:21,280 net_ctrl 121 RPC Session to ('127.0.0.1', 45654) started
DEBUG 2014-09-06 08:29:21,281 net_ctrl 199 NetworkController processing outgoing request list.
DEBUG 2014-09-06 08:29:21,281 net_ctrl 166 NetworkController started processing incoming messages
DEBUG 2014-09-06 08:29:39,582 net_ctrl 373 Request from NetworkController<<: core.start [{'router_id': '10.0.0.7', 'local_as': 65000}]
INFO 2014-09-06 08:29:39,582 base 208 API method core.start called with args: {'router_id': '10.0.0.7', 'local_as': 65000}
ERROR 2014-09-06 08:29:39,599 base 226 Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/base.py", line 221, in call
return call(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/ryu/services/protocols/bgp/api/core.py", line 40, in start
waiter = kwargs.pop('waiter')
KeyError: 'waiter'
Signed-off-by: Toshiki Tsuboi <t.tsubo2000@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
This is used along line 252 in peer_manager.py
Signed-off-by: Jerry Cen <zhiweic@google.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Differentiate BMP messages from different BMP clients, and modify the
debug logg ing message for client connected and disconnected.
Signed-off-by: Peng Xiao <xiaoquwl@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
When SocketError occurs, an event may not be notified to an other client.
It is because rpc_clients is changed in the loop.
Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Dict Comprehension is available in Python 2.7+ but Ryu should work
with Python2.6. Currently, It will become syntax error when we try to
operate BGP of Ryu on the platform of Python2.6.
Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
sample application simple_switch_snort.py which can dump alert message.
When there is a Snort alert message, Ryu will receive an event called EventAlert.
You can easily define the event handler in the method which using ‘set_ev_cls’
decorator with snortlib.EventAlert parameter.
The simple_switch_snort.py can install a flow that mirroring incoming packets to the snort's NIC
which correspond the OpenFlow switch on port 3 (by default).
There are two methods that sending alert message to Ryu.
1. Ryu and Snort are both on the same machine.
Ryu receives alert message via Unix Domain Socket.
2. Ryu and Snort are separate on different machines.
Ryu receives alert message via Network Socket.
More detail see doc/snort_integrate.rst
Signed-off-by: Che-Wei Lin <linton.tw@gmail.com>
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>
|
|
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>
|