On Fri, Nov 07, 2014 at 12:31:16PM +0530, Saloni Jain wrote:
> Also attaching the patch for your reference.
Thank you for the patch. I have some comments.
"sparse" reported these warnings:
../lib/ofp-util.c:77:17: warning: non-ANSI function declaration of function
'get_ovsprop_map'
../lib/ofp-util.c:5012:12: warning: incorrect type in assignment (different
base types)
../lib/ofp-util.c:5012:12: expected int enum ofputil_table_config [signed]
config
../lib/ofp-util.c:5012:12: got restricted ovs_be32
../lib/ofp-util.c:5013:17: warning: incorrect type in assignment (different
base types)
../lib/ofp-util.c:5013:17: expected restricted ovs_be32 [usertype] config
../lib/ofp-util.c:5013:17: got int enum ofputil_table_config [signed] config
../lib/ofp-util.c:5273:16: warning: incorrect type in assignment (different
base types)
../lib/ofp-util.c:5273:16: expected int enum ofputil_table_config [signed]
config
../lib/ofp-util.c:5273:16: got restricted ovs_be32
../lib/ofp-util.c:5278:21: warning: incorrect type in assignment (different
base types)
../lib/ofp-util.c:5278:21: expected restricted ovs_be32 [usertype] config
../lib/ofp-util.c:5278:21: got int enum ofputil_table_config [signed] config
The config field in a table description is a collection of bit-fields,
but some of this code, such as ofp_print_table_config() and
ofputil_append_table_desc_reply(), treats it as if it were a single
enumeration. Please change the code to regard it bitwise.
Here, in ofp-util.c, please write (void) instead of ():
static const struct ovstableprop_map *
get_ovsprop_map()
{
However, I don't see any value in the mapping layer between
OFPTMPEF14_* and OFPUTIL_TABLE_EVICTION_*. I would drop it and just
use the OFPTMPEF14_* values directly.
I don't understand the parse_table_property() function. It doesn't
seem to parse anything like the description of struct
ofp_table_mod_prop_eviction from OpenFlow 1.4. Ditto for
put_table_mod_eviction_property().
In ofputil_encode_table_desc_request(), I would use an "if" statement
to report an error for ofp_version < OFP14_VERSION. That should cause
less trouble as we add support for newer OpenFlow versions.
This commit adds a lot of related code to ofp-util.c, but it spreads
it around the file. I would expect that it would all be grouped
together since it is related.
Please check the indentation in ofputil_decode_table_desc(). At least
the "while" statement seems to be mis-indented.
ofputil_decode_table_mod() still doesn't understand any properties, so
I would not remove the comment that mentions that.
Please don't comment out code, as done in ofputil_encode_table_mod().
I don't see a benefit of having a nested structure inside struct
ofputil_table_desc.
There is a missing space before the { here. Also it doesn't make sense to
mention 0xff here for table_id since it's not a valid value (see the decoding
function):
/* Abstract ofp14_table_desc. */
struct ofputil_table_desc{
uint8_t table_id; /* ID of the table, 0xff indicates all
tables. */
There is no need for this code in handle_table_desc_request() because
higher-level code has already checked these properties for
correctness:
ofpbuf_use_const(&msg, request, ntohs(request->length));
ofpraw_pull_assert(&msg);
if (ofpbuf_size(&msg) || ofpmp_more(request)) {
return OFPERR_OFPTFFC_EPERM;
}
One of the lines in rule_eviction_priority() is too long. Please read
CodingStyle.md. Ditto for eviction_group_add_rule().
Please document your new features in ovs-ofctl.8.in and mention it in
NEWS.
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev