On Thu, Feb 16, 2012 at 3:26 PM, Jesse Gross <je...@nicira.com> wrote:
> On Thu, Feb 16, 2012 at 1:27 PM, Pravin B Shelar <pshe...@nicira.com> wrote:
>> diff --git a/datapath/datapath.c b/datapath/datapath.c
>> index 220c7dd..9d3c997 100644
>> --- a/datapath/datapath.c
>> +++ b/datapath/datapath.c
>> +static struct hlist_head *vport_hash_bucket(const struct datapath *dp, u16 
>> port_no)
>
> Some of the added lines are pretty long.  Can you wrap them where it
> makes sense?
>
ok

>> diff --git a/datapath/datapath.h b/datapath/datapath.h
>> index b012a76..8b8bd00 100644
>> --- a/datapath/datapath.h
>> +++ b/datapath/datapath.h
>> +static inline struct vport *ovs_vport_rcu(const struct datapath *dp, int id)
>> +{
>> +       WARN_ON_ONCE(!rcu_read_lock_held());
>> +       return ovs_lookup_vport(dp, id);
>> +}
>> +
>> +static inline struct vport *ovs_vport_rtnl_rcu(const struct datapath *dp, 
>> int id)
>> +{
>> +       WARN_ON_ONCE(!rcu_read_lock_held() && !rtnl_is_locked());
>> +       return ovs_lookup_vport(dp, id);
>> +}
>> +
>> +static inline struct vport *ovs_vport_rtnl(const struct datapath *dp, int 
>> id)
>> +{
>> +       ASSERT_RTNL();
>> +       return ovs_lookup_vport(dp, id);
>> +}
>
> Can you make the same changes to the id argument that you did in
> ovs_lookup_vport()?
>
ok.

>> diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c
>> index c06bb89..43e816f 100644
>> --- a/lib/dpif-linux.c
>> +++ b/lib/dpif-linux.c
>> @@ -59,10 +59,8 @@
>>  #include "vlog.h"
>>
>>  VLOG_DEFINE_THIS_MODULE(dpif_linux);
>> -
>> -enum { LRU_MAX_PORTS = 1024 };
>> -enum { LRU_MASK = LRU_MAX_PORTS - 1};
>> -BUILD_ASSERT_DECL(IS_POW2(LRU_MAX_PORTS));
>> +enum { MAX_PORTS = USHRT_MAX };
>> +BUILD_ASSERT_DECL(IS_POW2(MAX_PORTS + 1));
>
> There's no longer any reason that MAX_PORTS has to be a power of 2, right?
>
right.

>> @@ -409,9 +373,14 @@ dpif_linux_port_add(struct dpif *dpif_, struct netdev 
>> *netdev,
>>             *port_nop = reply.port_no;
>>             VLOG_DBG("%s: assigning port %"PRIu32" to netlink pid %"PRIu32,
>>                      dpif_name(dpif_), request.port_no, upcall_pid);
>> +        } else if (error == EFBIG) {
>> +            /* Older datapath has lower limit. */
>> +            max_ports = dpif->alloc_port_no;
>> +            dpif->alloc_port_no = 0;
>
> Port number zero will never be available since it is the local port.
> It would be better if we started at 1 (both initially and on wrap
> around).

right, thats why increment done before assigning to request.port_no.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to