ofpbuf: Update msg when resizing ofpbuf.
[cascardo/ovs.git] / ovn / ovn-sb.xml
index 29a1c88..52fe969 100644 (file)
@@ -80,7 +80,7 @@
   <h3>Bindings data</h3>
 
   <p>
-    The Bindings tables contain the current placement of logical components
+    The Binding tables contain the current placement of logical components
     (such as VMs and VIFs) onto chassis and the bindings between logical ports
     and MACs.
   </p>
@@ -98,7 +98,7 @@
   </p>
 
   <p>
-    The <ref table="Bindings"/> table is currently the only Bindings table.
+    The <ref table="Binding"/> table is currently the only binding data.
   </p>
 
   <table name="Chassis" title="Physical Network Hypervisor and Gateway Information">
       </p>
 
       <column name="gateway_ports">
-        Maps from the name of a gateway port, which is typically a physical
-        port (e.g. <code>eth1</code>) or an Open vSwitch patch port, to a <ref
+        Maps from the name of a port attached to the OVN integration bridge
+        (typically a physical port or an Open vSwitch patch port) to a <ref
         table="Gateway"/> record that describes the details of the gatewaying
         function.
       </column>
 
     <column name="type">
       The encapsulation to use to transmit packets to this chassis.
-      Examples include <code>geneve</code>, <code>vxlan</code>, and
-      <code>stt</code>.
+      Hypervisors must use either <code>geneve</code> or
+      <code>stt</code>.  Gateways may use <code>vxlan</code>,
+      <code>geneve</code>, or <code>stt</code>.
     </column>
 
     <column name="options">
       Maps from a VLAN ID to a logical port name.  Thus, each named logical
       port corresponds to one VLAN on the gateway port.
     </column>
-
-    <column name="attached_port">
-      The name of the gateway port in the chassis's Open vSwitch integration
-      bridge.
-    </column>
   </table>
 
   <table name="Pipeline" title="Logical Network Pipeline">
     <column name="logical_datapath">
       The logical datapath to which the logical flow belongs.  A logical
       datapath implements a logical pipeline among the ports in the <ref
-      table="Bindings"/> table associated with it.  (No table represents a
+      table="Binding"/> table associated with it.  (No table represents a
       logical datapath.)  In practice, the pipeline in a given logical datapath
       implements either a logical switch or a logical router, and
       <code>ovn-northd</code> reuses the UUIDs for those logical entities from
         String constants have the same syntax as quoted strings in JSON (thus,
         they are Unicode strings).  String constants are used for naming
         logical ports.  Thus, the useful values are <ref
-        column="logical_port"/> names from the <ref column="Bindings"/> and
-        <ref column="Gateway"/> table in a logical flow's <ref
-       column="logical_datapath"/>.
+        column="logical_port"/> names from the <ref column="Binding"/> and
+        <ref column="Gateway"/> tables in a logical flow's <ref
+        column="logical_datapath"/>.
       </p>
 
       <p>
 
     <column name="actions">
       <p>
-       Logical datapath actions, to be executed when the logical flow
-       represented by this row is the highest-priority match.
+        Logical datapath actions, to be executed when the logical flow
+        represented by this row is the highest-priority match.
       </p>
 
       <p>
-       Actions share lexical syntax with the <ref column="match"/> column.  An
-       empty set of actions (or one that contains just white space or
-       comments), or a set of actions that consists of just
-       <code>drop;</code>, causes the matched packets to be dropped.
-       Otherwise, the column should contain a sequence of actions, each
-       terminated by a semicolon.
+        Actions share lexical syntax with the <ref column="match"/> column.  An
+        empty set of actions (or one that contains just white space or
+        comments), or a set of actions that consists of just
+        <code>drop;</code>, causes the matched packets to be dropped.
+        Otherwise, the column should contain a sequence of actions, each
+        terminated by a semicolon.
       </p>
 
       <p>
-       The following actions will be initially supported:
+        The following actions will be initially supported:
       </p>
 
       <dl>
         <dt><code>output;</code></dt>
         <dd>
-         Outputs the packet to the logical port current designated by
-         <code>outport</code>.  Output to the ingress port is implicitly
-         dropped, that is, <code>output</code> becomes a no-op if
-         <code>outport</code> == <code>inport</code>.
-       </dd>
+          Outputs the packet to the logical port current designated by
+          <code>outport</code>.  Output to the ingress port is implicitly
+          dropped, that is, <code>output</code> becomes a no-op if
+          <code>outport</code> == <code>inport</code>.
+        </dd>
 
         <dt><code>next;</code></dt>
         <dd>
-         Executes the next logical datapath table as a subroutine.
-       </dd>
+          Executes the next logical datapath table as a subroutine.
+        </dd>
 
         <dt><code><var>field</var> = <var>constant</var>;</code></dt>
         <dd>
-         Sets data or metadata field <var>field</var> to constant value
-         <var>constant</var>.
-       </dd>
+          Sets data or metadata field <var>field</var> to constant value
+          <var>constant</var>, e.g. <code>outport = "vif0";</code> to set the
+          logical output port.  Assigning to a field with prerequisites
+          implicitly adds those prerequisites to <ref column="match"/>; thus,
+          for example, a flow that sets <code>tcp.dst</code> applies only to
+          TCP flows, regardless of whether its <ref column="match"/> mentions
+          any TCP field.  To set only a subset of bits in a field,
+          <var>field</var> may be a subfield or <var>constant</var> may be
+          masked, e.g. <code>vlan.pcp[2] = 1;</code> and <code>vlan.pcp =
+          4/4;</code> both set the most sigificant bit of the VLAN PCP.  Not
+          all fields are modifiable (e.g. <code>eth.type</code> and
+          <code>ip.proto</code> are read-only), and not all modifiable fields
+          may be partially modified (e.g. <code>ip.ttl</code> must assigned as
+          a whole).
+        </dd>
       </dl>
 
       <p>
-       The following actions will likely be useful later, but they have not
-       been thought out carefully.
+        The following actions will likely be useful later, but they have not
+        been thought out carefully.
       </p>
 
       <dl>
         <dt><code><var>field1</var> = <var>field2</var>;</code></dt>
-       <dd>
-         Extends the assignment action to allow copying between fields.
-       </dd>
+        <dd>
+          Extends the assignment action to allow copying between fields.
+        </dd>
 
         <dt><code>learn</code></dt>
 
     </column>
   </table>
 
-  <table name="Bindings" title="Physical-Logical Bindings">
+  <table name="Binding" title="Physical-Logical Bindings">
     <p>
       Each row in this table identifies the physical location of a logical
       port.
 
     <column name="chassis">
       The physical location of the logical port.  To successfully identify a
-      chassis, this column must match the <ref table="Chassis" column="name"/>
-      column in some row in the <ref table="Chassis"/> table.  This is
+      chassis, this column must be a <ref table="Chassis"/> record.  This is
       populated by <code>ovn-controller</code>.
     </column>