summaryrefslogtreecommitdiff
path: root/ovsdb
Commit message (Collapse)AuthorAgeFilesLines
* replication: Avoid theoretical use-after-free error in reset_database().Ben Pfaff2017-10-061-2/+2
| | | | | | | | | | Code that calls ovsdb_txn_row_delete() should avoid referencing the deleted row again, because it might be freed. In practice this shouldn't really happen in this case because of the particular circumstances, but it costs little to be careful. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Russell Bryant <russell@ovn.org>
* ovsdb-server.1: Fix mention of wrong option.Russell Bryant2017-09-101-1/+1
| | | | | | | | The man page referenced a "--no-sync" option. The correct option is "--active". Signed-off-by: Russell Bryant <russell@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* monitor: Simplify calculation of cond->conditional.Ben Pfaff2017-08-311-16/+12
| | | | | | | | | | This removes n_true_cnd from struct ovsdb_monitor_session_condition. It was an "optimization" that is not part of any inner loop, but make the code harder to reason about. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org> Acked-by: Liran Schour <lirans@il.ibm.com>
* monitor: Fix bad caching of conditional monitor_cond requests.Ben Pfaff2017-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation of ovsdb-server caches only non-conditional monitors, that is, monitors for every table row, not those that monitor only rows that match some condition. To figure out which monitors are conditional, the code track the number of tables that have conditions that are uniformly true (cond->n_true_cnd) and compares that against the number of tables in the condition (shash_count(&cond->tables)). If they are the same, then every table has (effectively) no condition, and so cond->conditional is set to false. However, the implementation was buggy. The function that adds a new table condition, ovsdb_monitor_table_condition_create(), only updated cond->conditional if the table condition being added was true. This is wrong; only adding a non-true condition can actually change cond->conditional. This commit fixes the problem by always recalculating cond->conditional. The most visible side effect of cond->conditional being true when it should be false, as caused by this bug, was that conditional monitors were being mixed with unconditional monitors for the purpose of caching. This meant that, if a client requested a conditional monitor that was the same as an unconditional one, except for the condition, then the client would receive the cached data previously sent for the unconditional one. This commit fixes the problem. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org> Acked-by: Liran Schour <lirans@il.ibm.com>
* ovsdb-idl: Avoid mutable type specifier.Joe Stringer2017-08-151-1/+1
| | | | | | | | | | In C++, 'mutable' 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 'is_mutable' to avoid this issue. Signed-off-by: Joe Stringer <joe@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* ovsdb-idl: Avoid class declaration.Joe Stringer2017-08-151-2/+2
| | | | | | | | | | 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 <joe@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* ovsdb-server: Document clarification for some bad wording in RFC 7047.Ben Pfaff2017-08-041-0/+8
| | | | | | Reported-by: Harish Kanakaraju <hkanakaraju@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idl: Autogenerated functions for compound indexesLance Richardson2017-08-031-0/+258
| | | | | | | | | | | | | | Generates and fills in the default comparators for columns with type int, real, string. Also creates the macros that allow iteration over the contents of the index, and perform queries. Signed-off-by: Arnoldo Lutz Guevara <arnoldo.lutz.guevara@hpe.com> Signed-off-by: Esteban Rodriguez Betancourt <estebarb@hpe.com> Co-authored-by: Arnoldo Lutz Guevara <arnoldo.lutz.guevara@hpe.com> Co-authored-by: Esteban Rodriguez Betancourt <estebarb@hpe.com> Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Eliminate most shadowing for local variable names.Ben Pfaff2017-08-022-25/+29
| | | | | | | | | | | | | | Shadowing is when a variable with a given name in an inner scope hides a different variable with the same name in a surrounding scope. This is generally undesirable because it can confuse programmers. This commit eliminates most of it. Found with -Wshadow=local in GCC 7. The repo is not really ready to enable this option by default because of a few cases that are harder to fix, and harmless, such as nested use of CMAP_FOR_EACH. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* Support IPv6 link-local address scopes on Linux.Ben Pfaff2017-07-172-29/+20
| | | | | | | | | | | | | | | | I hadn't even heard of this feature before, but it seems to be at least semi-standard to support Linux link-local address scopes via a % suffix, e.g. fe80::1234%eth0 for a link-local address scoped to eth0. This commit adds support. I'd appreciate feedback from folks who understand this feature better than me. Reported-by: Ali Volkan Atli <Volkan.Atli@argela.com.tr> Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Darrell Ball <dlu998@gmail.com> Tested-by: Numan Siddique <nusiddiq@redhat.com> Acked-by: Numan Siddique <nusiddiq@redhat.com>
* Python3 compatibility: unicode to strJason Wessel2017-07-061-3/+9
| | | | | | | | | | | | | | | | When transitioning from python2 to python3 the following type class changes occured: python2 -> python3 unicode -> str str -> bytes That means we have to check the python version and do the right type check python3 will throw an error when it tries to use the unicode type because it doesn't exist. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Python3 compatibility: fix integer problemsJason Wessel2017-07-061-1/+1
| | | | | | | | | | | | In python3 maxint is not defined, but maxsize is defined in both python2 and python3. The put_text() will not automatically use a value which came in as float due to a pior math function and python3 will throw an exception. The simple answer is to convert it with int() and move on. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Python3 compatibility: iteritems to itemsJason Wessel2017-07-061-4/+4
| | | | | | | | Allow compability with python3 and python2 by changing iteritems() to items(). Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Python3 compatibility: execfile to execJason Wessel2017-07-061-1/+1
| | | | | | | | Allow compability with python3 and python2 by changing execfile() to exec(). Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Python3 compatibility: exception cleanupJason Wessel2017-07-062-4/+4
| | | | | | | | The exception syntax which is compatible with python2 and python3 is to use the "as" form for "except:". Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* Python3 compatibility: Convert print statementsJason Wessel2017-07-062-264/+265
| | | | | | | | This patch fixes up all the print statements to work with python3 or python2. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb: add support for role-based access controlsLance Richardson2017-06-0816-14/+676
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add suport for ovsdb RBAC (role-based access control). This includes: - Support for "RBAC_Role" table. A db schema containing a table by this name will enable role-based access controls using this table for RBAC role configuration. The "RBAC_Role" table has one row per role, with each row having a "name" column (role name) and a "permissions" column (map of table name to UUID of row in separate permission table.) The permission table has one row per access control configuration, with the following columns: "name" - name of table to which this row applies "authorization" - set of column names and column:key pairs to be compared against client ID to determine authorization status "insert_delete" - boolean, true if insertions and authorized deletions are allowed. "update" - Set of columns and column:key pairs for which authorized updates are allowed. - Support for a new "role" column in the remote configuration table. - Logic for applying the RBAC role and permission tables, in combination with session role from the remote connection table and client id, to determine whether operations modifying database contents should be permitted. - Support for specifying RBAC role string as a command-line option to ovsdb-tool (Ben Pfaff). Signed-off-by: Lance Richardson <lrichard@redhat.com> Co-authored-by: Ben Pfaff <blp@ovn.org> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb-client: Use correct operand to 'sizeof' in do_dump().Ben Pfaff2017-05-311-2/+2
| | | | | | | | | | | | | | When copying an object, one must calculate the size of the object itself, not of its address. No visible effect, though, since both the object and its address are pointers in this case. Found by Coverity. Reported-at: https://scan3.coverity.com/reports.htm#v16889/p10449/fileInstanceId=14762869&defectInstanceId=4304032&mergedDefectId=179550 Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Aaron Conole <aconole@redhat.com>
* ovsdb: Check null before deref in ovsdb_monitor_table_condition_update().Ben Pfaff2017-05-301-5/+5
| | | | | | | | | | I believe that this would trigger an ovsdb-server crash if a client created a plain RFC 7047 "monitor" and later attempted to update its condition. Found by Coverity. Reported-at: https://scan3.coverity.com/reports.htm#v16889/p10449/fileInstanceId=14763017&defectInstanceId=4305336&mergedDefectId=180412 Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb: refactor utility functions into separate fileLance Richardson2017-05-044-177/+258
| | | | | | | | | Move local db access functions to a new file and make give them global scope so they can be included in the ovsdb library and used by other ovsdb library functions. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb: add xml equivalents of remote man page fragmentsLance Richardson2017-05-013-0/+70
| | | | | | | | Add XML equivalents for remote-active.man and remote-passive.man for inclusion by man pages using XML format. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb-client: improve formatting option description in man pageLance Richardson2017-04-061-2/+1
| | | | | | | | | | Use correct option name for "--no-headings", remove duplicate "--no-heading" option in synopsis. Clarify description of "--data=json" option. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* table: provide table formatting option help at runtimeLance Richardson2017-04-061-7/+2
| | | | | | | | | Show table formatting options with help output from ovn-nbctl, obn-sbctl, ovs-vsctl, and vtep-ctl commands. Include "--data" option in ovsdb-client help output. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb-server: Drop unnecessary find_db() function.Ben Pfaff2017-03-291-25/+5
| | | | | | | | | | | 'all_dbs' maps from a schema name to its struct db, so there's no need to iterate the whole thing to find a database by schema name; instead, just use the shash in the usual way. Also, a few related but simpler changes elsewhere. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>>
* ovsdb-server: Fix memory leak in update_remote_status() error path.Ben Pfaff2017-03-291-3/+4
| | | | | | | Found by inspection. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* Remove build-time generated files when "make clean" is run.Justin Pettit2017-02-131-5/+5
| | | | | | | | | | | | "make clean" should remove all files generated by building a program, while "make distclean" should also remove files generated by configuring the program. Previously some generated files during the build process, such as man pages, were left behind when "make clean" was run. This commit only leaves configuration files after "make clean" is run, and removes all other generated files. Signed-off-by: Justin Pettit <jpettit@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* ovsdb: Prevent OVSDB server from replicating itself.Andy Zhou2017-02-135-17/+106
| | | | | | | | | | | | | | | Replication OVSDB server from itself is usually caused by configuration errors. Such configuration errors can lead to OVSDB server data loss. See "reported-at" for more details. This patch adds logics that prevent OVSDB server from replicating itself. Reported-by: Guishuai Li <ligs@dtdream.com> Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2017-January/326963.html Suggested-by: Ben Pfaff <blp@ovn.org> Signed-off-by: Andy Zhou <azhou@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* ovsdb: Add OVSDB server per instance UUID.Andy Zhou2017-02-134-0/+15
| | | | | | | | | | Currently, there is no way for an OVSDB server to ID itself. This patch adds a UUID field that is populated every time OVSDB server runs. Later patch will make use this UUID to detect and stop and OVSDB server from replicating itself. Signed-off-by: Andy Zhou <azhou@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* ovsdb: Gracefully handle replication errors.Andy Zhou2017-02-131-2/+2
| | | | | | | | | | | | | | | Sometimes replication session can fail mostly due to replication configurations. i.e. replicating from a database with a different version of the schema. Currently, those errors are treated as fatal errors, and stops the OVSDB server. A better way to handle those error may be to stop only the replication session, and leave the OVSDB server up, so that the replication can be restarted, may be with a different configuration, at a later time. Signed-off-by: Andy Zhou <azhou@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* libX.pc: use the correct output directoryAaron Conole2017-01-261-1/+1
| | | | | | | | | | | | When the ovsdb library pkgconfig changes were introduced, they placed generated output in the src directory. This is incorrect, however, as the output files should actually be placed in the build directory. It is only seen when running `make distcheck` after enabling shared libraries (ex: `./configure --enable-shared`). Fixes: commit e72e07a97e95 ("lib: Add support for pkgconfig for libovsdb.") Signed-off-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* libX: add new release / version info tagsAaron Conole2017-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit uses the $PACKAGE_VERSION automake variable to construct a release and version info combination which sets the library name to be: libfoo-$(OVS_MAJOR_VERSION).so.$(OVS_MINOR_VERSION).0.$(OVS_MICRO_VERSION) where formerly, it was always: libfoo.so.1.0.0 This allows releases of Open vSwitch libraries to reflect which specific versions they came with, and sets up a psuedo ABI-versioning scheme. In this fashion, future releases of Open vSwitch could be installed alongside older releases, allowing 3rd party utilities linked against previous versions to continue to function. ex: $ ldd /path/to/utility linux-vdso.so.1 (0x00007ffe92cf6000) libopenvswitch-2.so.6 => /lib64/libopenvswitch-2.so.6 (0x00007f733b7a3000) libssl.so.10 => /lib64/libssl.so.10 (0x00007f733b530000) ... Note the library name and version information. Signed-off-by: Aaron Conole <aconole@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* table: correct documented default format in man pagesLance Richardson2016-12-221-0/+2
| | | | | | | | | | | | | | | | | There are currently five users of the table formatting library, all of which default to "list" except for ovsdb-client which defaults to "table". The library current default is "table", and the table.man man page fragment only considers ovs-vsctl to use something other than "table" as a default.As a result, the man pages for ovn-sbctl and vtep-ctl are currently incorrect (these options aren't documented in the ovn-nbctl man page, which will need to be addressed in a future patch). Fix by making the library default format "list" and handling ovsdb-client as the exception. Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb-idlc: Initialize nonnull string columns for inserted rows.Ben Pfaff2016-12-201-0/+5
| | | | | | | | | | | | | | | | | | | | When a schema column has type "exactly one string", the corresponding struct member has type "char *" and the documented and expected behavior is that the string should always be nonnull. (The code generator even adds a comment /* Always nonnull. */ in the struct definition.) In the case where a value is not available, the string is supposed to be initialized to "" instead of to NULL. However, the IDL code for inserting a new row did not properly initialize the column to "", instead leaving it NULL. This could cause null pointer dereferences in corner cases. This commit fixes the problem. Reported-by: Lance Richardson <lrichard@redhat.com> Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2016-December/326500.html Signed-off-by: Ben Pfaff <blp@ovn.org> Tested-by: Lance Richardson <lrichard@redhat.com>
* ovsdb-idl: Change interface to conditional monitoring.Ben Pfaff2016-12-191-191/+12
| | | | | | | | | | | | | | | | | | | | | | | | Most users of OVSDB react to whatever is currently in their view of the database, as opposed to keeping track of changes and reacting to those changes individually. The interface to conditional monitoring was different, in that it expected the client to say what to add or remove from monitoring instead of what to monitor. This seemed reasonable at the time, but in practice it turns out that the usual approach actually works better, because the condition is generally a function of the data visible in the database. This commit changes the approach. This commit also changes the meaning of an empty condition for a table. Previously, an empty condition meant to replicate every row. Now, an empty condition means to replicate no rows. This is more convenient for code that gradually constructs conditions, because it does not need special cases for replicating nothing. This commit also changes the internal implementation of conditions from linked lists to arrays. I just couldn't see an advantage to using linked lists. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Liran Schour <lirans@il.ibm.com>
* ovsdb-tool: Document database numbering scheme.Ben Pfaff2016-12-021-0/+25
| | | | | | | Prompted by an IRC discussion. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Russell Bryant <russell@ovn.org>
* ovsdb: Allow online compacting on Windows.Alin Serdean2016-11-301-11/+76
| | | | | | | | | | | | | | | | | | This patch allows online compacting to be done under Windows. To achieve the above we need to close all file handles before trying to rename the file, switch from rename to MoveFileEx (because rename/MoveFile fails if the destination exists), reopen the right type of log after the rename. If we could not reopen the compacted database or the original database after the close simply abort and rely on the service manager. This can be changed in the future. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Co-authored-by: Ben Pfaff <blp@ovn.org> Signed-off-by: Ben Pfaff <blp@ovn.org> Tested-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
* Add support for specifying SSL connection parameters to ovsdbEthan Rahn2016-11-104-5/+27
| | | | | Signed-off-by: Ethan Rahn <erahn@arista.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb-server: Implement read-only remote connection type.Lance Richardson2016-11-014-2/+23
| | | | | | | | | | | Adds a new "read_only" column for remote connections. Operations that would alter the state of the database are not permitted on connections for which the "read_only" column is set to "true". Signed-off-by: Lance Richardson <lrichard@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ovsdb-idlc: Remove special case for "sizeof bool".Ben Pfaff2016-10-191-23/+4
| | | | | | | | | | | | The "sparse" checker used to warn about sizeof(bool). These days, it does not warn (without -Wsizeof-bool), so remove this ugly special case. If you have a version of "sparse" that still warns by default, please upgrade to a version that includes commit 2667c2d4ab33 (sparse: Allow override of sizeof(bool) warning). Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idl: Sort and unique-ify datum in ovsdb_idl_txn_write().Ben Pfaff2016-10-191-2/+0
| | | | | | | | | | | | I noticed that there were lots of calls to ovsdb_datum_sort_unique() from "set" functions in generated IDL code. This moves that call into common code, reducing redundancy. There are more calls to the same function that are a little harder to remove. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Eliminate <prefix>_init() function from generated code.Ben Pfaff2016-10-191-57/+30
| | | | | Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Consolidate assertions.Ben Pfaff2016-10-191-21/+12
| | | | | | | | There were lots of bits of code emitting "assert(inited);". This combines many of them. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Declare loop variables in for statements in generated code.Ben Pfaff2016-10-191-14/+5
| | | | | | | | | | | | This changes several instances of size_t i; for (i = 0; i < ...; i++) into: for (size_t i = 0; i < ...; i++) in generated code, making it slightly more compact and easier to read. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Make generated references to columns easier to read.Ben Pfaff2016-10-191-38/+28
| | | | | | | | | This replaces ovsrec_open_vswitch_columns[OVSREC_OPEN_VSWITCH_COL_CUR_CFG] by the easier to read and equivalent ovsrec_open_vswitch_col_cur_cfg in generated code. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Make generated references to table classes easier to read.Ben Pfaff2016-10-191-28/+29
| | | | | | | | This replaces &ovsrec_table_classes[OVSREC_TABLE_OPEN_VSWITCH] by the easier to read and equivalent &ovsrec_table_open_vswitch in generated code. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Simplify code generation to parse sets and maps of references.Ben Pfaff2016-10-191-21/+21
| | | | | | | | | | | | | | | | | This switches from code that looks like: if (keyRow) { ... } to: if (!keyRow) { continue; } ... which is a little easier to generate because the indentation of ... is constant. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Factor out sorting columns.Ben Pfaff2016-10-191-17/+20
| | | | | Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Remove obsolete documentation and usage.Ben Pfaff2016-10-192-6/+0
| | | | | Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb-idlc: Use ovsdb_datum_from_smap() instead of open-coding it.Ben Pfaff2016-10-191-42/+3
| | | | | | | | | | | | There's no reason to have three copies of this code for every smap-type column. The code wasn't a perfect match for ovsdb_datum_from_smap(), so this commit also changes ovsdb_datum_from_smap() to better suit it. It only had one caller and the new design is adequate for that caller. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Andy Zhou <azhou@ovn.org>
* ovsdb: Reorder elements in ovsdb_table_schema structure.Bhanuprakash Bodireddy2016-10-171-2/+2
| | | | | | | | | | | | | | By reordering the elements in ovsdb_table_schema structure, pad bytes can be reduced and also a cache line is saved. Before: structure size:72, holes:2, sum padbytes:10, cachelines:2 After: structure size:64, holes:1, sum padbytes:2, cachelines:1 Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodireddy@intel.com> Co-authored-by: Antonio Fischetti <antonio.fischetti@intel.com> Signed-off-by: Antonio Fischetti <antonio.fischetti@intel.com> Acked-by: Jarno Rajahalme <jarno@ovn.org> Acked-by: Daniele Di Proietto <diproiettod@vmware.com>