In C++, 'class' is a keyword. If this is used as the name for a field, then C++ compilers can get confused about the context and fail to compile references to such fields. Rename the field to 'class_' to avoid this issue.
Signed-off-by: Joe Stringer <j...@ovn.org> --- lib/db-ctl-base.c | 4 +- lib/ovsdb-idl-provider.h | 2 +- lib/ovsdb-idl.c | 140 +++++++++++++++++++++++------------------------ 3 files changed, 73 insertions(+), 73 deletions(-) diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c index 90629d5d9913..19bbd9b431b2 100644 --- a/lib/db-ctl-base.c +++ b/lib/db-ctl-base.c @@ -635,7 +635,7 @@ check_mutable(const struct ovsdb_idl_row *row, { if (!ovsdb_idl_is_mutable(row, column)) { ctl_fatal("cannot modify read-only column %s in table %s", - column->name, row->table->class->name); + column->name, row->table->class_->name); } } @@ -1715,7 +1715,7 @@ cmd_show_find_table_by_row(const struct ovsdb_idl_row *row) const struct cmd_show_table *show; for (show = cmd_show_tables; show->table; show++) { - if (show->table == row->table->class) { + if (show->table == row->table->class_) { return show; } } diff --git a/lib/ovsdb-idl-provider.h b/lib/ovsdb-idl-provider.h index 8cfbb95aa0dc..09cff143f07f 100644 --- a/lib/ovsdb-idl-provider.h +++ b/lib/ovsdb-idl-provider.h @@ -103,7 +103,7 @@ struct ovsdb_idl_table_class { }; struct ovsdb_idl_table { - const struct ovsdb_idl_table_class *class; + const struct ovsdb_idl_table_class *class_; unsigned char *modes; /* OVSDB_IDL_* bitmasks, indexed by column. */ bool need_table; /* Monitor table even if no columns are selected * for replication. */ diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c index 893143c551f6..d0ecad7cf097 100644 --- a/lib/ovsdb-idl.c +++ b/lib/ovsdb-idl.c @@ -86,11 +86,11 @@ enum ovsdb_idl_state { }; struct ovsdb_idl { - const struct ovsdb_idl_class *class; + const struct ovsdb_idl_class *class_; struct jsonrpc_session *session; struct uuid uuid; struct shash table_by_name; /* Contains "struct ovsdb_idl_table *"s.*/ - struct ovsdb_idl_table *tables; /* Array of ->class->n_tables elements. */ + struct ovsdb_idl_table *tables; /* Array of ->class_->n_tables elements. */ unsigned int change_seqno; bool verify_write_only; @@ -259,7 +259,7 @@ ovsdb_idl_create(const char *remote, const struct ovsdb_idl_class *class, : 0); idl = xzalloc(sizeof *idl); - idl->class = class; + idl->class_ = class; idl->session = jsonrpc_session_open(remote, retry); shash_init(&idl->table_by_name); idl->tables = xmalloc(class->n_tables * sizeof *idl->tables); @@ -269,7 +269,7 @@ ovsdb_idl_create(const char *remote, const struct ovsdb_idl_class *class, size_t j; shash_add_assert(&idl->table_by_name, tc->name, table); - table->class = tc; + table->class_ = tc; table->modes = xmalloc(tc->n_columns); memset(table->modes, default_mode, tc->n_columns); table->need_table = false; @@ -326,7 +326,7 @@ ovsdb_idl_destroy(struct ovsdb_idl *idl) ovsdb_idl_clear(idl); jsonrpc_session_close(idl->session); - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; ovsdb_idl_condition_destroy(&table->condition); shash_destroy(&table->columns); @@ -350,7 +350,7 @@ ovsdb_idl_clear(struct ovsdb_idl *idl) bool changed = false; size_t i; - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; struct ovsdb_idl_row *row, *next_row; @@ -754,9 +754,9 @@ ovsdb_idl_check_consistency(const struct ovsdb_idl *idl) struct uuid *dsts = NULL; size_t allocated_dsts = 0; - for (size_t i = 0; i < idl->class->n_tables; i++) { + for (size_t i = 0; i < idl->class_->n_tables; i++) { const struct ovsdb_idl_table *table = &idl->tables[i]; - const struct ovsdb_idl_table_class *class = table->class; + const struct ovsdb_idl_table_class *class = table->class_; const struct ovsdb_idl_row *row; HMAP_FOR_EACH (row, hmap_node, &table->rows) { @@ -780,16 +780,16 @@ ovsdb_idl_check_consistency(const struct ovsdb_idl *idl) dsts, &n_dsts)) { VLOG_ERR("unexpected arc from %s row "UUID_FMT" to %s " "row "UUID_FMT, - table->class->name, + table->class_->name, UUID_ARGS(&row->uuid), - arc->dst->table->class->name, + arc->dst->table->class_->name, UUID_ARGS(&arc->dst->uuid)); ok = false; } } for (size_t i = 0; i < n_dsts; i++) { VLOG_ERR("%s row "UUID_FMT" missing arc to row "UUID_FMT, - table->class->name, UUID_ARGS(&row->uuid), + table->class_->name, UUID_ARGS(&row->uuid), UUID_ARGS(&dsts[i])); ok = false; } @@ -802,7 +802,7 @@ ovsdb_idl_check_consistency(const struct ovsdb_idl *idl) const struct ovsdb_idl_class * ovsdb_idl_get_class(const struct ovsdb_idl *idl) { - return idl->class; + return idl->class_; } /* Given 'column' in some table in 'class', returns the table's class. */ @@ -826,8 +826,8 @@ ovsdb_idl_table_from_column(struct ovsdb_idl *idl, const struct ovsdb_idl_column *column) { const struct ovsdb_idl_table_class *tc = - ovsdb_idl_table_class_from_column(idl->class, column); - return &idl->tables[tc - idl->class->tables]; + ovsdb_idl_table_class_from_column(idl->class_, column); + return &idl->tables[tc - idl->class_->tables]; } static unsigned char * @@ -838,7 +838,7 @@ ovsdb_idl_get_mode(struct ovsdb_idl *idl, const struct ovsdb_idl_table *table = ovsdb_idl_table_from_column(idl, column); - return &table->modes[column - table->class->columns]; + return &table->modes[column - table->class_->columns]; } static void @@ -853,7 +853,7 @@ add_ref_table(struct ovsdb_idl *idl, const struct ovsdb_base_type *base) table->need_table = true; } else { VLOG_WARN("%s IDL class missing referenced table %s", - idl->class->database, base->u.uuid.refTableName); + idl->class_->database, base->u.uuid.refTableName); } } } @@ -895,10 +895,10 @@ ovsdb_idl_add_table(struct ovsdb_idl *idl, { size_t i; - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; - if (table->class == tc) { + if (table->class_ == tc) { table->need_table = true; return; } @@ -1177,7 +1177,7 @@ ovsdb_idl_send_cond_change(struct ovsdb_idl *idl) struct json *monitor_cond_change_requests = NULL; - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; if (table->cond_changed) { @@ -1187,7 +1187,7 @@ ovsdb_idl_send_cond_change(struct ovsdb_idl *idl) monitor_cond_change_requests = json_object_create(); } json_object_put(monitor_cond_change_requests, - table->class->name, + table->class_->name, json_array_create_1(req)); } table->cond_changed = false; @@ -1294,8 +1294,8 @@ ovsdb_idl_track_add_all(struct ovsdb_idl *idl) { size_t i, j; - for (i = 0; i < idl->class->n_tables; i++) { - const struct ovsdb_idl_table_class *tc = &idl->class->tables[i]; + for (i = 0; i < idl->class_->n_tables; i++) { + const struct ovsdb_idl_table_class *tc = &idl->class_->tables[i]; for (j = 0; j < tc->n_columns; j++) { const struct ovsdb_idl_column *column = &tc->columns[j]; @@ -1310,7 +1310,7 @@ ovsdb_idl_track_is_set(struct ovsdb_idl_table *table) { size_t i; - for (i = 0; i < table->class->n_columns; i++) { + for (i = 0; i < table->class_->n_columns; i++) { if (table->modes[i] & OVSDB_IDL_TRACK) { return true; } @@ -1358,7 +1358,7 @@ ovsdb_idl_track_is_updated(const struct ovsdb_idl_row *row, const struct ovsdb_idl_table_class *class; size_t column_idx; - class = row->table->class; + class = row->table->class_; column_idx = column - class->columns; if (row->updated && bitmap_is_set(row->updated, column_idx)) { @@ -1378,7 +1378,7 @@ ovsdb_idl_track_clear(const struct ovsdb_idl *idl) { size_t i; - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; if (!ovs_list_is_empty(&table->track_list)) { @@ -1409,7 +1409,7 @@ ovsdb_idl_send_schema_request(struct ovsdb_idl *idl) json_destroy(idl->request_id); msg = jsonrpc_create_request( "get_schema", - json_array_create_1(json_string_create(idl->class->database)), + json_array_create_1(json_string_create(idl->class_->database)), &idl->request_id); jsonrpc_session_send(idl->session, msg); } @@ -1510,15 +1510,15 @@ ovsdb_idl_send_monitor_request__(struct ovsdb_idl *idl, schema = parse_schema(idl->schema); monitor_requests = json_object_create(); - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; - const struct ovsdb_idl_table_class *tc = table->class; + const struct ovsdb_idl_table_class *tc = table->class_; struct json *monitor_request, *columns, *where; const struct sset *table_schema; size_t j; table_schema = (schema - ? shash_find_data(schema, table->class->name) + ? shash_find_data(schema, table->class_->name) : NULL); columns = table->need_table ? json_array_create_empty() : NULL; @@ -1529,7 +1529,7 @@ ovsdb_idl_send_monitor_request__(struct ovsdb_idl *idl, && !sset_contains(table_schema, column->name)) { VLOG_WARN("%s table in %s database lacks %s column " "(database needs upgrade?)", - table->class->name, idl->class->database, + table->class_->name, idl->class_->database, column->name); continue; } @@ -1544,7 +1544,7 @@ ovsdb_idl_send_monitor_request__(struct ovsdb_idl *idl, if (schema && !table_schema) { VLOG_WARN("%s database lacks %s table " "(database needs upgrade?)", - idl->class->database, table->class->name); + idl->class_->database, table->class_->name); json_destroy(columns); continue; } @@ -1567,7 +1567,7 @@ ovsdb_idl_send_monitor_request__(struct ovsdb_idl *idl, snprintf(uuid, sizeof uuid, UUID_FMT, UUID_ARGS(&idl->uuid)); msg = jsonrpc_create_request( method, - json_array_create_3(json_string_create(idl->class->database), + json_array_create_3(json_string_create(idl->class_->database), json_string_create(uuid), monitor_requests), &idl->request_id); jsonrpc_session_send(idl->session, msg); @@ -1643,7 +1643,7 @@ ovsdb_idl_parse_update__(struct ovsdb_idl *idl, "<%s> for table \"%s\" is " "not an object", table_update_name, - table->class->name); + table->class_->name); } SHASH_FOR_EACH (table_node, json_object(table_update)) { const struct json *row_update = table_node->data; @@ -1656,7 +1656,7 @@ ovsdb_idl_parse_update__(struct ovsdb_idl *idl, "contains bad UUID " "\"%s\" as member name", table_update_name, - table->class->name, + table->class_->name, table_node->name); } if (row_update->type != JSON_OBJECT) { @@ -1665,7 +1665,7 @@ ovsdb_idl_parse_update__(struct ovsdb_idl *idl, "contains <%s> for %s that " "is not an object", table_update_name, - table->class->name, + table->class_->name, row_update_name, table_node->name); } @@ -1765,7 +1765,7 @@ ovsdb_idl_process_update(struct ovsdb_idl_table *table, } else { VLOG_WARN_RL(&semantic_rl, "cannot delete missing row "UUID_FMT" " "from table %s", - UUID_ARGS(uuid), table->class->name); + UUID_ARGS(uuid), table->class_->name); return false; } } else if (!old) { @@ -1776,7 +1776,7 @@ ovsdb_idl_process_update(struct ovsdb_idl_table *table, ovsdb_idl_insert_row(row, new); } else { VLOG_WARN_RL(&semantic_rl, "cannot add existing row "UUID_FMT" to " - "table %s", UUID_ARGS(uuid), table->class->name); + "table %s", UUID_ARGS(uuid), table->class_->name); return ovsdb_idl_modify_row(row, new); } } else { @@ -1788,12 +1788,12 @@ ovsdb_idl_process_update(struct ovsdb_idl_table *table, } else { VLOG_WARN_RL(&semantic_rl, "cannot modify missing but " "referenced row "UUID_FMT" in table %s", - UUID_ARGS(uuid), table->class->name); + UUID_ARGS(uuid), table->class_->name); ovsdb_idl_insert_row(row, new); } } else { VLOG_WARN_RL(&semantic_rl, "cannot modify missing row "UUID_FMT" " - "in table %s", UUID_ARGS(uuid), table->class->name); + "in table %s", UUID_ARGS(uuid), table->class_->name); ovsdb_idl_insert_row(ovsdb_idl_row_create(table, uuid), new); } } @@ -1819,7 +1819,7 @@ ovsdb_idl_process_update2(struct ovsdb_idl_table *table, } else { VLOG_WARN_RL(&semantic_rl, "cannot delete missing row "UUID_FMT" " "from table %s", - UUID_ARGS(uuid), table->class->name); + UUID_ARGS(uuid), table->class_->name); return false; } } else if (!strcmp(operation, "insert") || !strcmp(operation, "initial")) { @@ -1830,7 +1830,7 @@ ovsdb_idl_process_update2(struct ovsdb_idl_table *table, ovsdb_idl_insert_row(row, json_row); } else { VLOG_WARN_RL(&semantic_rl, "cannot add existing row "UUID_FMT" to " - "table %s", UUID_ARGS(uuid), table->class->name); + "table %s", UUID_ARGS(uuid), table->class_->name); ovsdb_idl_delete_row(row); ovsdb_idl_insert_row(row, json_row); } @@ -1842,17 +1842,17 @@ ovsdb_idl_process_update2(struct ovsdb_idl_table *table, } else { VLOG_WARN_RL(&semantic_rl, "cannot modify missing but " "referenced row "UUID_FMT" in table %s", - UUID_ARGS(uuid), table->class->name); + UUID_ARGS(uuid), table->class_->name); return false; } } else { VLOG_WARN_RL(&semantic_rl, "cannot modify missing row "UUID_FMT" " - "in table %s", UUID_ARGS(uuid), table->class->name); + "in table %s", UUID_ARGS(uuid), table->class_->name); return false; } } else { VLOG_WARN_RL(&semantic_rl, "unknown operation %s to " - "table %s", operation, table->class->name); + "table %s", operation, table->class_->name); return false; } @@ -1871,7 +1871,7 @@ ovsdb_idl_row_change__(struct ovsdb_idl_row *row, const struct json *row_json, enum ovsdb_idl_change change) { struct ovsdb_idl_table *table = row->table; - const struct ovsdb_idl_table_class *class = table->class; + const struct ovsdb_idl_table_class *class = table->class_; struct shash_node *node; bool changed = false; bool apply_diff = diff_json != NULL; @@ -1892,7 +1892,7 @@ ovsdb_idl_row_change__(struct ovsdb_idl_row *row, const struct json *row_json, continue; } - column_idx = column - table->class->columns; + column_idx = column - table->class_->columns; old = &row->old[column_idx]; error = NULL; @@ -1943,7 +1943,7 @@ ovsdb_idl_row_change__(struct ovsdb_idl_row *row, const struct json *row_json, char *s = ovsdb_error_to_string(error); VLOG_WARN_RL(&syntax_rl, "error parsing column %s in row "UUID_FMT " in table %s: %s", column_name, - UUID_ARGS(&row->uuid), table->class->name, s); + UUID_ARGS(&row->uuid), table->class_->name, s); free(s); ovsdb_error_destroy(error); } @@ -2006,7 +2006,7 @@ ovsdb_idl_row_exists(const struct ovsdb_idl_row *row) static void ovsdb_idl_row_parse(struct ovsdb_idl_row *row) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t i; for (i = 0; i < class->n_columns; i++) { @@ -2018,7 +2018,7 @@ ovsdb_idl_row_parse(struct ovsdb_idl_row *row) static void ovsdb_idl_row_unparse(struct ovsdb_idl_row *row) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t i; for (i = 0; i < class->n_columns; i++) { @@ -2032,7 +2032,7 @@ ovsdb_idl_row_clear_old(struct ovsdb_idl_row *row) { ovs_assert(row->old == row->new); if (!ovsdb_idl_row_is_orphan(row)) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t i; for (i = 0; i < class->n_columns; i++) { @@ -2048,7 +2048,7 @@ ovsdb_idl_row_clear_new(struct ovsdb_idl_row *row) { if (row->old != row->new) { if (row->new) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t i; if (row->written) { @@ -2126,7 +2126,7 @@ ovsdb_idl_row_create__(const struct ovsdb_idl_table_class *class) static struct ovsdb_idl_row * ovsdb_idl_row_create(struct ovsdb_idl_table *table, const struct uuid *uuid) { - struct ovsdb_idl_row *row = ovsdb_idl_row_create__(table->class); + struct ovsdb_idl_row *row = ovsdb_idl_row_create__(table->class_); hmap_insert(&table->rows, &row->hmap_node, uuid_hash(uuid)); row->uuid = *uuid; row->table = table; @@ -2165,8 +2165,8 @@ ovsdb_idl_destroy_all_map_op_lists(struct ovsdb_idl_row *row) size_t idx, n_columns; const struct ovsdb_idl_column *columns; const struct ovsdb_type *type; - n_columns = row->table->class->n_columns; - columns = row->table->class->columns; + n_columns = row->table->class_->n_columns; + columns = row->table->class_->columns; BITMAP_FOR_EACH_1 (idx, n_columns, row->map_op_written) { type = &columns[idx].type; map_op_list_destroy(row->map_op_lists[idx], type); @@ -2186,8 +2186,8 @@ ovsdb_idl_destroy_all_set_op_lists(struct ovsdb_idl_row *row) size_t idx, n_columns; const struct ovsdb_idl_column *columns; const struct ovsdb_type *type; - n_columns = row->table->class->n_columns; - columns = row->table->class->columns; + n_columns = row->table->class_->n_columns; + columns = row->table->class_->columns; BITMAP_FOR_EACH_1 (idx, n_columns, row->set_op_written) { type = &columns[idx].type; set_op_list_destroy(row->set_op_lists[idx], type); @@ -2204,7 +2204,7 @@ ovsdb_idl_row_destroy_postprocess(struct ovsdb_idl *idl) { size_t i; - for (i = 0; i < idl->class->n_tables; i++) { + for (i = 0; i < idl->class_->n_tables; i++) { struct ovsdb_idl_table *table = &idl->tables[i]; if (!ovs_list_is_empty(&table->track_list)) { @@ -2223,7 +2223,7 @@ ovsdb_idl_row_destroy_postprocess(struct ovsdb_idl *idl) static void ovsdb_idl_insert_row(struct ovsdb_idl_row *row, const struct json *row_json) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t i; ovs_assert(!row->old && !row->new); @@ -2307,7 +2307,7 @@ static struct ovsdb_idl_table * ovsdb_idl_table_from_class(const struct ovsdb_idl *idl, const struct ovsdb_idl_table_class *table_class) { - return &idl->tables[table_class - idl->class->tables]; + return &idl->tables[table_class - idl->class_->tables]; } /* Called by ovsdb-idlc generated code. */ @@ -2424,7 +2424,7 @@ ovsdb_idl_read(const struct ovsdb_idl_row *row, ovs_assert(!ovsdb_idl_row_is_synthetic(row)); - class = row->table->class; + class = row->table->class_; column_idx = column - class->columns; ovs_assert(row->new != NULL); @@ -2601,7 +2601,7 @@ ovsdb_idl_txn_increment(struct ovsdb_idl_txn *txn, ovs_assert(column->type.key.type == OVSDB_TYPE_INTEGER); ovs_assert(column->type.value.type == OVSDB_TYPE_VOID); - txn->inc_table = row->table->class->name; + txn->inc_table = row->table->class_->name; txn->inc_column = column->name; txn->inc_row = row->uuid; txn->inc_force = force; @@ -2768,7 +2768,7 @@ static bool ovsdb_idl_txn_extract_mutations(struct ovsdb_idl_row *row, struct json *mutations) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t idx; bool any_mutations = false; @@ -3026,7 +3026,7 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn) } operations = json_array_create_1( - json_string_create(txn->idl->class->database)); + json_string_create(txn->idl->class_->database)); /* Assert that we have the required lock (avoiding a race). */ if (txn->idl->lock_name) { @@ -3040,7 +3040,7 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn) HMAP_FOR_EACH (row, txn_node, &txn->txn_rows) { /* XXX check that deleted rows exist even if no prereqs? */ if (row->prereqs) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; size_t n_columns = class->n_columns; struct json *op, *columns, *row_json; size_t idx; @@ -3070,7 +3070,7 @@ ovsdb_idl_txn_commit(struct ovsdb_idl_txn *txn) /* Add updates. */ any_updates = false; HMAP_FOR_EACH (row, txn_node, &txn->txn_rows) { - const struct ovsdb_idl_table_class *class = row->table->class; + const struct ovsdb_idl_table_class *class = row->table->class_; if (!row->new) { if (class->is_root) { @@ -3366,7 +3366,7 @@ ovsdb_idl_txn_write__(const struct ovsdb_idl_row *row_, goto discard_datum; } - class = row->table->class; + class = row->table->class_; column_idx = column - class->columns; write_only = row->table->modes[column_idx] == OVSDB_IDL_MONITOR; @@ -3508,7 +3508,7 @@ ovsdb_idl_txn_verify(const struct ovsdb_idl_row *row_, return; } - class = row->table->class; + class = row->table->class_; column_idx = column - class->columns; ovs_assert(row->new != NULL); @@ -3997,7 +3997,7 @@ ovsdb_idl_txn_add_map_op(struct ovsdb_idl_row *row, size_t column_idx; struct map_op *map_op; - class = row->table->class; + class = row->table->class_; column_idx = column - class->columns; /* Check if a map operation list exists for this column. */ @@ -4033,7 +4033,7 @@ ovsdb_idl_txn_add_set_op(struct ovsdb_idl_row *row, size_t column_idx; struct set_op *set_op; - class = row->table->class; + class = row->table->class_; column_idx = column - class->columns; /* Check if a set operation list exists for this column. */ @@ -4064,7 +4064,7 @@ is_valid_partial_update(const struct ovsdb_idl_row *row, struct ovsdb_datum *datum) { /* Verify that this column is being monitored. */ - unsigned int column_idx = column - row->table->class->columns; + unsigned int column_idx = column - row->table->class_->columns; if (!(row->table->modes[column_idx] & OVSDB_IDL_MONITOR)) { VLOG_WARN("cannot partially update non-monitored column"); return false; -- 2.13.3 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev