Andy Zhou <az...@ovn.org> wrote on 08/02/2016 09:41:47 PM: > On Sun, Feb 7, 2016 at 12:08 AM, Liran Schour <lir...@il.ibm.com> wrote: > Andy Zhou <az...@ovn.org> wrote on 04/02/2016 11:54:06 PM: > > > On Sun, Jan 31, 2016 at 11:03 PM, Liran Schour <lir...@il.ibm.com> > wrote: > > Columns indexing is different in ovsdb_row then in ovsdb_monitor_row. > > We need mapping between the 2 for condition evaluation. > > > > signed-off-by: Liran Schour <lir...@il.ibm.com> > > > > It may be simpler to and more efficient to have ovsdb_clause to > > have pointer to ovsdb_monitor_column* than > > to ovsdb_column directly. We can add a field in > > ovsdb_monitor_column to store the index for accessing row data. > > > > struct ovsdb_caluse { > > enum ovsdb_function function; > > const struct ovsdb_monitor_column *column; > > struct ovsdb_datum arg > > }; > > > > If this approach works, then we don't need to maintain the index map. > > > > Ovsdb_clause and ovsdb_condition are being used originally to evaluate > conditions on ovsdb_row. Because of that ovsdb_clause do needs the field > ovsdb_column. > I agree that the index map array does not looks too good but the option to > overcome it as I see it is to duplicate the code in condition.c for > ovsdb_monitor_row that will have ovsdb_monitor_clause with > ovsdb_monitor_column field. What do you think? > > Yes, I am concerned with idea of using index map array to bridge API gaps. > > How about the following: > > struct ovsdb_clause { > enum ovsdb_function function; > const struct ovsdb_column * column; > unsigned int index; /* column Index into ovsdb_datum for > evaluation.*/ > struct ovsdb_datum arg; > } > > Without monitor_cond, the new 'index' will be the same > column->index. monitor_cond > can maintain the 'index' field with the same logic as index map. The > condition API can > mostly be reused, No? >
Yes it can be reused. At default index will be initialize to column->index and if the caller calls to ovsdb_condition_set_index(condition*, index_map[]) after condition creation. Indexes will be set to the index_map values. I will go with this option to simplify the condition API. (but still needs to maintain index_map in monitor.c) Thanks _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev