[ovs-discuss] Name of port in OFP_SWITCH_FEATURES

kk yap yapkke at stanford.edu
Mon Feb 7 20:44:30 UTC 2011


Hi Ben,

Thanks.  That's indeed the problem.

The version I am using is Open vSwitch 1.1.0pre2, with last git commit
3569d18f47f49c115d80033a3661ad31c13d06c9.

I have changed my code to handle this.  Your fix works too (I checked
in wireshark).  Thanks.

Regards
KK

PS>> Thanks.  I have not read the article myself.



On 7 February 2011 09:54, Ben Pfaff <blp at nicira.com> wrote:
> On Mon, Feb 07, 2011 at 01:54:53AM -0800, kk yap wrote:
>> I am using OpenvSwitch kernel datapath with openflowd.  When I connect
>> the kernel datapath path to the controller, the controller (written in
>> Python) sends a features reply with a list of ports.  In that list of
>> ports, I have added eth1 to the datapath, but the name of the port is
>> "eth1\u0001".
>>
>> I am wondering why there is a unicode following the name?  Is that any
>> reason for this?  The internal port "dp0" does not seem to have that
>> problem.
>
> I don't see how a stray \001 could end up in there before the null
> terminator.  I do see that we weren't properly zeroing the whole field,
> so garbage could sneak in after the null terminator.  Here is a patch
> against current master (you didn't mention a version) that should fix
> that.  Can you try it out?
>
> Thanks,
>
> Ben.
>
> P.S. I see that your research is mentioned in the latest issue of
>     Discover Magazine.  Congrats on that.
>
> --8<--------------------------cut here-------------------------->8--
>
> From f2e8aca5ac0b1da274e2aedf72bf928982fcc995 Mon Sep 17 00:00:00 2001
> From: Ben Pfaff <blp at nicira.com>
> Date: Mon, 7 Feb 2011 09:52:42 -0800
> Subject: [PATCH] ofproto: Clear out entire 'name' field of ofp_phy_port when initializing.
>
> Sometimes garbage could appear in the name field following the port name,
> since it wasn't completely zeroed.
>
> Reported-by: kk yap <yapkke at openvswitch.org>
> ---
>  ofproto/ofproto.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index 5ca41ad..100240d 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1155,7 +1155,7 @@ make_ofport(const struct dpif_port *dpif_port)
>         return NULL;
>     }
>
> -    ofport = xmalloc(sizeof *ofport);
> +    ofport = xzalloc(sizeof *ofport);
>     ofport->netdev = netdev;
>     ofport->odp_port = dpif_port->port_no;
>     ofport->opp.port_no = odp_port_to_ofp_port(dpif_port->port_no);
> --
> 1.7.1
>
>




More information about the discuss mailing list