ovsdb-idlc(1) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | BUGS | SEE ALSO | COLOPHON

ovsdb-idlc(1)              Open vSwitch Manual              ovsdb-idlc(1)

NAME         top

       ovsdb-idlc - Open vSwitch IDL (Interface Definition Language)
       compiler

SYNOPSIS         top

       ovsdb-idlc annotate schema annotations
       ovsdb-idlc c-idl-header idl
       ovsdb-idlc c-idl-source idl
       ovsdb-idlc --help
       ovsdb-idlc --version

DESCRIPTION         top

       The ovsdb-idlc program is a command-line tool for translating Open
       vSwitch database interface definition language (IDL) schemas into
       other formats.  It is used while building Open vSwitch, not at
       installation or configuration time.  Thus, it is not normally
       installed as part of Open vSwitch.

       The idl files used as input for most ovsdb-idlc commands have the
       same format as the OVSDB schemas, specified in the OVSDB
       specification, with a few additions:

       "idlPrefix" member of <database-schema>
              This member, which is required, specifies a string that is
              prefixed to top-level names in C bindings.  It should
              probably end in an underscore.

       "idlHeader" member of <database-schema>
              This member, which is required, specifies the name of the
              IDL header.  It will be output on an #include line in the
              source file generated by the C bindings.  It should include
              the bracketing "" or <>.

       "cDecls" member of <database-schema>
       "hDecls" member of <database-schema>
              These optional members may specify arbitrary code to
              include in the generated .c or .h file, respectively, in
              each case just after the #include directives in those
              files.

       "extensions" member of <table-schema>
       "extensions" member of <column-schema>
              This member is optional.  If specified, it is an object
              whose contents describes extensions to the OVSDB schema
              language, for the purpose of specifying interpretation by
              the IDL.

       "synthetic" member of <column-schema> "extensions" object
              If this optional member is set to true, then it indicates
              that the column is not expected to be found in the actual
              database.  Instead, code supplied by the IDL's client fills
              in the desired structure members based on the value of one
              or more other database columns.  This can be used to cache
              the result of a calculation, for example.

       "parse" member of <column-schema> "extensions" object
              This member should be present if and only if the column is
              synthetic.  It should be a string that contains C code to
              set the value of the column's member in an object named
              row, e.g. "row->column = 1;" if the column's name is column
              and has integer type.  The code may rely on the columns
              named in dependencies to be initialized.  The function can
              get called for rows that do not satisfy the constraints in
              the schema, e.g. that a pointer to another is nonnull, so
              it must not rely on those constraints.

       "unparse" member of <column-schema> "extensions" object
              This member is honored only if the column is synthetic.  It
              should be a string that contains C code to free the data in
              the column's member in an object named row, e.g.
              "free(row->column);" if the column's name is column and
              points to data that was allocated by the parse function and
              needs to be freed.

       "dependencies" member of <column-schema> "extensions" object
              This member should be a list of the names of columns whose
              values are used by the code in parse and unparse.  The IDL
              ensures that dependencies are parsed before the columns
              that depends on them, and vice versa for unparsing.

   Commands
       annotate schema annotations
              Reads schema, which should be a file in JSON format
              (ordinarily an OVSDB schema file), then reads and executes
              the Python syntax fragment in annotations.  The Python
              syntax fragment is passed the JSON object as a local
              variable named s.  It may modify this data in any way.
              After the Python code returns, the object as modified is
              re-serialized as JSON on standard output.

       c-idl-header idl
              Reads idl and prints on standard output a C header file
              that defines a structure for each table defined by the
              schema.  If a column name in idl is a C or C++ keyword, it
              will be appended with an underscore.

       c-idl-source idl
              Reads idl and prints on standard output a C source file
              that implements C bindings for the database defined by the
              schema.  If a column name in idl is a C or C++ keyword, it
              will be appended with an underscore.

   Options

BUGS         top

       ovsdb-idlc is more lenient about the format of OVSDB schemas than
       other OVSDB tools.  It may successfully parse schemas that, e.g.,
       ovsdb-tool rejects.

SEE ALSO         top

       The OVSDB specification.

COLOPHON         top

       This page is part of the Open vSwitch (a distributed virtual
       multilayer switch) project.  Information about the project can be
       found at ⟨http://openvswitch.org/⟩.  If you have a bug report for
       this manual page, send it to bugs@openvswitch.org.  This page was
       obtained from the project's upstream Git repository
       ⟨https://github.com/openvswitch/ovs.git⟩ on 2025-02-02.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2025-01-30.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

Open vSwitch                  November 2009                 ovsdb-idlc(1)