[ovs-dev] [PATCH v5 08/13] lib/odp: Use masked set actions.

Ben Pfaff blp at nicira.com
Tue Sep 9 19:32:03 UTC 2014


On Fri, Sep 05, 2014 at 04:05:15PM -0700, Jarno Rajahalme wrote:
> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>
> ---
> v5: Using pattern with less code duplication suggested by Ben.

odp_mask_is_exact() treats the unused bits in tun_mask->flags
differently from the unused bits in ipv6_mask->ipv6_label.  I guess
that this could be because we someday expect that there might be new
tunnel flags, but I am not sure whether the treatment has been
carefully thought through, so I'm bringing it up to make sure.

"sparse" says:

    ../lib/odp-util.c:3967:9: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3967:9:    expected restricted ovs_be32 [usertype] key
    ../lib/odp-util.c:3967:9:    got unsigned int const [unsigned] [usertype] skb_priority
    ../lib/odp-util.c:3968:10: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3968:10:    expected restricted ovs_be32 [usertype] base
    ../lib/odp-util.c:3968:10:    got unsigned int [unsigned] [usertype] skb_priority
    ../lib/odp-util.c:3969:10: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3969:10:    expected restricted ovs_be32 [usertype] mask
    ../lib/odp-util.c:3969:10:    got unsigned int [unsigned] [usertype] skb_priority
    ../lib/odp-util.c:3973:33: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3973:33:    expected unsigned int [unsigned] [usertype] skb_priority
    ../lib/odp-util.c:3973:33:    got restricted ovs_be32 [addressable] [usertype] base
    ../lib/odp-util.c:3974:32: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3974:32:    expected unsigned int [unsigned] [usertype] skb_priority
    ../lib/odp-util.c:3974:32:    got restricted ovs_be32 [addressable] [usertype] mask
    ../lib/odp-util.c:3986:9: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3986:9:    expected restricted ovs_be32 [usertype] key
    ../lib/odp-util.c:3986:9:    got unsigned int const [unsigned] [usertype] pkt_mark
    ../lib/odp-util.c:3987:10: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3987:10:    expected restricted ovs_be32 [usertype] base
    ../lib/odp-util.c:3987:10:    got unsigned int [unsigned] [usertype] pkt_mark
    ../lib/odp-util.c:3988:10: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3988:10:    expected restricted ovs_be32 [usertype] mask
    ../lib/odp-util.c:3988:10:    got unsigned int [unsigned] [usertype] pkt_mark
    ../lib/odp-util.c:3992:29: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3992:29:    expected unsigned int [unsigned] [usertype] pkt_mark
    ../lib/odp-util.c:3992:29:    got restricted ovs_be32 [addressable] [usertype] base
    ../lib/odp-util.c:3993:28: warning: incorrect type in assignment (different base types)
    ../lib/odp-util.c:3993:28:    expected unsigned int [unsigned] [usertype] pkt_mark
    ../lib/odp-util.c:3993:28:    got restricted ovs_be32 [addressable] [usertype] mask
which I think just means that commit_set_priority_action() and
commit_set_pkt_mark_action() should use uint32_t instead of ovs_be32
internally.

Acked-by: Ben Pfaff <blp at nicira.com>



More information about the dev mailing list