> In ofp_print_packet_in(), the use of ~ (twice) below makes me nervous.
> Testing the result of ~ for a nonzero value is risky, because C's
> promotion rules mean that it will always be true due if the expression's
> type is narrower than "int".  That should not ever be the case here, but
> I think I still would prefer explicit comparisons against
> e.g. htonll(UINT64_MAX), because it requires less thinking to see that
> it is correct:

I agree so I changed it to an explicit comparison against
htonll(UINT64_MAX) and UINT32_MAX as appropriate.

Ethan


>
>> +    if (pin.fmd.tun_id_mask) {
>> +        ds_put_format(string, " tun_id=0x%"PRIx64, ntohll(pin.fmd.tun_id));
>> +        if (~pin.fmd.tun_id_mask) {
>> +            ds_put_format(string, "/0x%"PRIx64, 
>> ntohll(pin.fmd.tun_id_mask));
>> +        }
>> +    }
>> +
>> +    for (i = 0; i < FLOW_N_REGS; i++) {
>> +        if (pin.fmd.reg_masks[i]) {
>> +            ds_put_format(string, " reg%d=0x%"PRIx32, i, pin.fmd.regs[i]);
>> +            if (~pin.fmd.reg_masks[i]) {
>> +                ds_put_format(string, "/0x%"PRIx32, pin.fmd.reg_masks[i]);
>> +            }
>> +        }
>> +    }
>
> Thanks,
>
> Ben.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to