Age | Commit message (Collapse) | Author |
|
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>
|
|
variable 'nlri_str' was not defined in peer.py
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 1564,
in handle_msg
self._handle_update_msg(msg)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 1230,
in _handle_update_msg
self._extract_and_handle_mpbgp_new_paths(update_msg)
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 1445,
in _extract_and_handle_mpbgp_new_paths
self._adj_rib_in[nlri_str] = received_route
NameError: global name 'nlri_str' is not defined
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: 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>
|
|
'core.reset_neighbor' was synchronous API and the caller had to wait
until neighbor comes up. This behavior doesn't work well with rpc_cli.
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
looks like,
bgpd> show neighbor
IP Address AS Number BGP State
10.0.0.1 64514 Established
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
- change the name of the filter class from PrefixList to PrefixFilter to
make it easy to understand the role of this class.
- update docs
- fix bugs
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
rtconf is basically for static configuration and filter is
dynamic and also specific configuration for peer instance.
move filter things under peer instance, and change rtconf to do only
static configuration things from a configuration file
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this will be used when in-bound and out-bound filter changed at runtime
and to implement BMP(BGP monitering protocol) client
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>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
move filter class from bgpspeaker.py to info_base/base.py to fix the error
shown below.
$ sudo env PYTHONPATH=/home/wataru/ryu ~/ryu/bin/ryu run --config-file=~/etc/ryu01.conf ./application.py
loading app ./application.py
instantiating app ./application.py of RyuBGPSpeaker
INFO 2014-07-21 06:14:48,066 base 207 API method core.start called with
args: {'router_id': '10.10.0.1', 'label_range': (100, 100000), 'waiter':
<ryu.lib.hub.Event object at 0x1a15dd0>, 'local_as': 64512,
'bgp_server_port': 179, 'refresh_max_eor_time': 0,
'refresh_stalepath_time': 0}
Traceback (most recent call last):
File "/home/wataru/ryu/bin/ryu", line 20, in <module>
main()
File "/home/wataru/ryu/ryu/cmd/ryu_base.py", line 75, in main
subcmd.run(base_conf.subcommand_args)
File "/home/wataru/ryu/ryu/cmd/ryu_base.py", line 58, in run
self.entry(args=args, prog=prog)
File "/home/wataru/ryu/ryu/cmd/manager.py", line 81, in main
services.extend(app_mgr.instantiate_apps(**contexts))
File "/home/wataru/ryu/ryu/base/app_manager.py", line 486, in
instantiate_apps
t = app.start()
File "/home/wataru/ryu/ryu/services/protocols/bgp/application.py",
line 93, in start
self._start_core(settings)
File "/home/wataru/ryu/ryu/services/protocols/bgp/application.py",
line 168, in _start_core
call('core.start', waiter=waiter, **common_settings)
File "/home/wataru/ryu/ryu/services/protocols/bgp/api/base.py", line
210, in call
import all # noqa
File "/home/wataru/ryu/ryu/services/protocols/bgp/api/all.py", line 4,
in <module>
import prefix
File "/home/wataru/ryu/ryu/services/protocols/bgp/api/prefix.py", line
29, in <module>
from ryu.services.protocols.bgp.core import BgpCoreError
File "/home/wataru/ryu/ryu/services/protocols/bgp/core.py", line 37,
in <module>
from ryu.services.protocols.bgp import core_managers
File
"/home/wataru/ryu/ryu/services/protocols/bgp/core_managers/__init__.py",
line 19, in <module>
from peer_manager import PeerManager
File
"/home/wataru/ryu/ryu/services/protocols/bgp/core_managers/peer_manager.py",
line 6, in <module>
from ryu.services.protocols.bgp.peer import Peer
File "/home/wataru/ryu/ryu/services/protocols/bgp/peer.py", line 32,
in <module>
from ryu.services.protocols.bgp.bgpspeaker import PrefixList
File "/home/wataru/ryu/ryu/services/protocols/bgp/bgpspeaker.py", line
56, in <module>
from ryu.services.protocols.bgp.application import RyuBGPSpeaker
File "/home/wataru/ryu/ryu/services/protocols/bgp/application.py",
line 64, in <module>
def_desc='Unknown bootstrap exception.')
File "/home/wataru/ryu/ryu/services/protocols/bgp/base.py", line 105,
in add_bgp_error_metadata
'already defined.' % (code, sub_code))
ValueError: BGPSException with code 300 and sub-code 1 already defined.
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
when using action type below, the log unsuitable is outputted:
Unknown action type: [action type]
* GOTO_TABLE, WRITE_METADATA, METER(only ofctl_v1_3.py)
this patch fixes this problem.
Reported-by: jalee <jalee@inno-tech.com.tw>
Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
when enclosed the value of "ip_proto" in double quotes,
following match fields is not set at mod_flow_stats command:
* tcp_dst, tcp_src
this patch fixes this problem.
Reported-by: jalee <jalee@inno-tech.com.tw>
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>
|
|
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>
|
|
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
stop showing when stringified because it's noisy
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>
|
|
added neighbor_update method to BGPSpeaker class.
Currently only MED value can be changed.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Sorry, I changed parameter name for MED to uniform with add_vrf.
I resend patches for neighbor_add method and neighbor_update and
please ignore the patches that I sent before.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this patch shut up the warning shown below
/home/wataru/etc/bgpconf01.py:1: RuntimeWarning: Parent module
'bgpspeaker' not found while handling absolute import
import os
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
due to fdce89a0, _listen_tcp returns tuple.
Reported-by: 坪井俊樹 <t.tsubo2000@gmail.com>
Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
BGPOpen that is set to sent_open_msg and recv_open_msg doesn't have
caps and BGP capabilities are stored in opt_param as List.
I changed the way of checking BGP capabilities.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
RouteFamily objects are treated as a singleton object.
However they are created in peer.py, so I added method to
get RouteFamily object in bgp.py and changed codes to use it.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
Added out-filter function to Ryu BGPSpeaker. It supports IPv4 and
IPv6.
Signed-off-by: Hiroshi Yokoi <yokoi.hiroshi@po.ntts.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this patch makes ofctl_rest enable getting Description of a port.
usage)
URI: /stats/portdesc/<dpid>
method: GET
e.g. )
curl http://localhost:8080/stats/portdesc/1
{"1": [{"hw_addr": "c6:d8:19:4a:e1:4f", "curr": 0, "supported": 0,
"max_speed": 0, "advertised": 0, "peer": 0,
"port_no": 4294967294, "curr_speed": 0, "name": "s1",
"state": 1, "config": 1},
{"hw_addr": "8e:96:a1:14:d8:a1", "curr": 2112, "supported": 0,
"max_speed": 0, "advertised": 0, "peer": 0,
"port_no": 1, "curr_speed": 10000000, "name": "s1-eth1",
"state": 0, "config": 0}]}
Signed-off-by: TAKAHASHI Minoru <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
this patch makes ofctl_rest enable use of Port Modification Message.
usage)
URI: /stats/portdesc/modify
method: POST
the message body is as follows:
dpid
port_no (default:0)
config (default:0)
hw_addr (default:automatic-setting)
mask (default:0)
advertise (default:automatic-setting)
e.g. )
curl -X POST -d '{"dpid": 1,
"port_no": 1,
"mask": 0b0000001,
"config": 0b0000001}' http://localhost:8080/stats/portdesc/modify
Signed-off-by: TAKAHASHI Minoru <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
No spec change. The issue occurs at the time of "one_way=True"
Signed-off-by: Satoshi Kobayashi <satoshi-k@stratosphere.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
"\x11"*4 is an invalid value for TCP option, because it
would be decoded as Kind=17 and Length=17, but actual
size is 4.
If we'd like to set some non-zero value for TCP option
here, Kind=1(NOOP) is better.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|
|
The following causes an error at mod_flow_entry command
- ofctl_v1_2.py
* match field: metadata, mpls_label
- ofctl_v1_3.py
* match field: in_phy_port
and the following causes an error at get_flow_stats command
- ofctl_v1_2.py
* action: POP_MPLS
* match field: metadata, ipv6_nd_target
- ofctl_v1_3.py
* action: POP_MPLS
* match field: ipv6_nd_target
this patch fixes them.
Signed-off-by: TAKAHASHI Minoru <takahashi.minoru7@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
|