[PATCH] cls: add rtnl_u32_get_classid() API

Cong Wang xiyou.wangcong at gmail.com
Wed Mar 4 09:27:14 PST 2015


On Wed, Mar 4, 2015 at 6:03 AM, Thomas Haller <thaller at redhat.com> wrote:
> On Tue, 2015-03-03 at 22:05 -0800, Cong Wang wrote:
>>
>> +int rtnl_u32_get_classid(struct rtnl_cls *cls, uint32_t *classid)\
>> +{
>> +     struct rtnl_u32 *u;
>> +
>> +     if (!(u = rtnl_tc_data(TC_CAST(cls))))
>> +             return -NLE_NOMEM;
>
> I dislike that the getter tries to allocate memory. I know, other places
> do that too...
>
> I pushed a new function rtnl_tc_data_peek() to master. How is that?
>
> +    if (!(u = rtnl_tc_data_peek(TC_CAST(cls))))
> +         return -NLE_INVAL;
>

Nice! Definitely better!


>> diff --git a/libnl-route-3.sym b/libnl-route-3.sym
>> index 2768f05..7a5f26f 100644
>> --- a/libnl-route-3.sym
>> +++ b/libnl-route-3.sym
>> @@ -815,6 +815,7 @@ global:
>>       rtnl_u32_del_action;
>>       rtnl_u32_get_key;
>>       rtnl_u32_set_classid;
>> +     rtnl_u32_get_classid;
>
> the new symobls should move down to the new libnl_3_2_26 section (at the
> end of the file).

Ah, my bad, I missed that.

>
>>       rtnl_u32_set_cls_terminal;
>>       rtnl_u32_set_divisor;
>>       rtnl_u32_set_flags;
>
>
>
>
> If you agree with me doing these two changes, no need to resend the
> patch (unless you want).

Totally agree with your changes, please go ahead to change it.



More information about the libnl mailing list