ISHIDA Wataru 3fa25edeae bgp: fix bugs related to filter
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💯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>
2014-07-30 14:01:39 +09:00
2014-04-21 19:06:25 +09:00
2014-07-28 19:16:41 +09:00
2014-07-30 14:01:39 +09:00
2013-09-02 14:44:29 +09:00
2012-06-27 20:57:07 +09:00
2013-09-08 17:47:52 +09:00
2014-04-16 15:56:59 +09:00
2014-05-14 15:39:33 +09:00
2014-04-21 19:05:46 +09:00
2014-05-14 15:39:33 +09:00

What's Ryu
==========
Ryu is a component-based software defined networking framework.

Ryu provides software components with well defined API that make it
easy for developers to create new network management and control
applications. Ryu supports various protocols for managing network
devices, such as OpenFlow, Netconf, OF-config, etc. About OpenFlow,
Ryu supports fully 1.0, 1.2, 1.3, 1.4 and Nicira Extensions.

All of the code is freely available under the Apache 2.0 license. Ryu
is fully written in Python.


Quick Start
===========
Installing Ryu is quite easy::

   % pip install ryu

If you prefer to install Ryu from the source code::

   % git clone git://github.com/osrg/ryu.git
   % cd ryu; python ./setup.py install

If you want to use Ryu with `OpenStack <http://openstack.org/>`_,
please refer `detailed documents <http://ryu.readthedocs.org/en/latest/using_with_openstack.html>`_.
You can create tens of thousands of isolated virtual networks without
using VLAN.  The Ryu application is included in OpenStack mainline as
of Essex release.

If you want to write your Ryu application, have a look at
`Writing ryu application <http://ryu.readthedocs.org/en/latest/writing_ryu_app.html>`_ document.
After writing your application, just type::

   % ryu-manager yourapp.py


Support
=======
Ryu Official site is `<http://osrg.github.io/ryu/>`_.

If you have any
questions, suggestions, and patches, the mailing list is available at
`ryu-devel ML
<https://lists.sourceforge.net/lists/listinfo/ryu-devel>`_.
`The ML archive at Gmane <http://dir.gmane.org/gmane.network.ryu.devel>`_
is also available.
Description
No description provided
Readme Apache-2.0 30 MiB
Languages
Python 86.8%
Erlang 12.4%
C 0.4%
Shell 0.3%
JavaScript 0.1%