ovn: Add xxreg[01] symbols.
authorJustin Pettit <jpettit@ovn.org>
Tue, 12 Jul 2016 01:25:24 +0000 (18:25 -0700)
committerJustin Pettit <jpettit@ovn.org>
Wed, 13 Jul 2016 04:14:03 +0000 (21:14 -0700)
Signed-off-by: Justin Pettit <jpettit@ovn.org>
Acked-by: Ben Pfaff <blp@ovn.org>
ovn/controller/lflow.c
ovn/ovn-sb.xml
tests/test-ovn.c

index 00d1d6e..b77b364 100644 (file)
@@ -66,6 +66,9 @@ lflow_init(void)
     MFF_LOG_REGS;
 #undef MFF_LOG_REG
 
+    expr_symtab_add_field(&symtab, "xxreg0", MFF_XXREG0, NULL, false);
+    expr_symtab_add_field(&symtab, "xxreg1", MFF_XXREG1, NULL, false);
+
     /* Connection tracking state. */
     expr_symtab_add_field(&symtab, "ct_mark", MFF_CT_MARK, NULL, false);
     expr_symtab_add_field(&symtab, "ct_label", MFF_CT_LABEL, NULL, false);
index 00a92e0..7b45bbb 100644 (file)
         symbols, only names within the flow's logical datapath may be used.
       </p>
 
+      <p>
+        The <code>reg</code><var>X</var> symbols are 32-bit integers.
+        The <code>xxreg</code><var>X</var> symbols are 128-bit integers,
+        which overlay four of the 32-bit registers: <code>xxreg0</code>
+        overlays <code>reg0</code> through <code>reg3</code>, with
+        <code>reg0</code> supplying the most-significant bits of
+        <code>xxreg0</code> and <code>reg3</code> the least-signficant.
+        <code>xxreg1</code> similarly overlays <code>reg4</code> through
+        <code>reg7</code>.
+      </p>
+
       <ul>
         <li><code>reg0</code>...<code>reg9</code></li>
+        <li><code>xxreg0</code> <code>xxreg1</code></li>
         <li><code>inport</code> <code>outport</code></li>
         <li><code>eth.src</code> <code>eth.dst</code> <code>eth.type</code></li>
         <li><code>vlan.tci</code> <code>vlan.vid</code> <code>vlan.pcp</code> <code>vlan.present</code></li>
index a3357a3..fd004c9 100644 (file)
@@ -146,6 +146,9 @@ create_symtab(struct shash *symtab)
     expr_symtab_add_string(symtab, "inport", MFF_REG14, NULL);
     expr_symtab_add_string(symtab, "outport", MFF_REG15, NULL);
 
+    expr_symtab_add_field(symtab, "xxreg0", MFF_XXREG0, NULL, false);
+    expr_symtab_add_field(symtab, "xxreg1", MFF_XXREG1, NULL, false);
+
     expr_symtab_add_field(symtab, "xreg0", MFF_XREG0, NULL, false);
     expr_symtab_add_field(symtab, "xreg1", MFF_XREG1, NULL, false);
     expr_symtab_add_field(symtab, "xreg2", MFF_XREG2, NULL, false);