On Tue, 30 Jun 2015 11:59:38 +0200
Valentin Kautz <[email protected]> wrote:

> From: Valentin Kautz <[email protected]>
> 
> Signed-off-by: Valentin Kautz <[email protected]>
> ---
>  ryu/contrib/ovs/socket_util.py | 29 ++++++++++++++++++++++++++++-
>  ryu/contrib/ovs/stream.py      |  7 +++----
>  2 files changed, 31 insertions(+), 5 deletions(-)

Thanks! But the code under the contrib directory not is maintained by
us. They are kinda cloned. So I want this change in OVS upsteam
first. Then we'll sync with the latest OVS code. This change is
already in the OVS upstream?

> diff --git a/ryu/contrib/ovs/socket_util.py b/ryu/contrib/ovs/socket_util.py
> index 1fc80fd..f349ddd 100644
> --- a/ryu/contrib/ovs/socket_util.py
> +++ b/ryu/contrib/ovs/socket_util.py
> @@ -85,8 +85,19 @@ def check_connection_completion(sock):
>  
>  
>  def inet_parse_active(target, default_port):
> -    address = target.split(":")
> +    """Splits the given target ip-address at the last occuring ':' to
> +    separate address from port. Ipv6 addresses may be given with square
> +    brackets at the beginning and the end.
> +
> +    example:
> +    ipv4 target: "tcp:127.0.0.1:6632"
> +    ipv6 target: "tcp:[2001:DB8:0:0::1]:6632"
> +    """
> +    address = target.rsplit(":", 1)
>      host_name = address[0]
> +    host_name = host_name.rstrip("]")
> +    host_name = host_name.lstrip("[")
> +
>      if not host_name:
>          raise ValueError("%s: bad peer name format" % target)
>      if len(address) >= 2:
> @@ -119,6 +130,22 @@ def inet_open_active(style, target, default_port, dscp):
>          return get_exception_errno(e), None
>  
>  
> +def inet_open_active_stream(target, default_port, dscp):
> +    address = inet_parse_active(target, default_port)
> +    try:
> +        sock = socket.create_connection(address)
> +    except socket.error, e:
> +        return get_exception_errno(e), None
> +
> +    try:
> +        set_nonblocking(sock)
> +        set_dscp(sock, dscp)
> +        return 0, sock
> +    except socket.error, e:
> +        sock.close()
> +        return get_exception_errno(e), None
> +
> +
>  def get_socket_error(sock):
>      """Returns the errno value associated with 'socket' (0 if no error) and
>      resets the socket's error status."""
> diff --git a/ryu/contrib/ovs/stream.py b/ryu/contrib/ovs/stream.py
> index c640ebf..ccd9619 100644
> --- a/ryu/contrib/ovs/stream.py
> +++ b/ryu/contrib/ovs/stream.py
> @@ -346,16 +346,15 @@ class UnixStream(Stream):
>      @staticmethod
>      def _open(suffix, dscp):
>          connect_path = suffix
> -        return  ovs.socket_util.make_unix_socket(socket.SOCK_STREAM,
> -                                                 True, None, connect_path)
> +        return ovs.socket_util.make_unix_socket(socket.SOCK_STREAM,
> +                                                True, None, connect_path)
>  Stream.register_method("unix", UnixStream)
>  
>  
>  class TCPStream(Stream):
>      @staticmethod
>      def _open(suffix, dscp):
> -        error, sock = ovs.socket_util.inet_open_active(socket.SOCK_STREAM,
> -                                                       suffix, 0, dscp)
> +        error, sock = ovs.socket_util.inet_open_active_stream(suffix, 0, 
> dscp)
>          if not error:
>              sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
>          return error, sock
> -- 
> 2.4.3
> 
> 
> ------------------------------------------------------------------------------
> Don't Limit Your Business. Reach for the Cloud.
> GigeNET's Cloud Solutions provide you with the tools and support that
> you need to offload your IT needs and focus on growing your business.
> Configured For All Businesses. Start Your Cloud Today.
> https://www.gigenetcloud.com/
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to