]> git.proxmox.com Git - mirror_ovs.git/blobdiff - ofproto/ofproto-provider.h
ofproto: Mark immutable members of struct rule 'const'.
[mirror_ovs.git] / ofproto / ofproto-provider.h
index 6583294ee29a419093e1f478de75003cfd3c27a4..a3640bd8e28c08eae8f8aacbbeed0cab05deacf7 100644 (file)
@@ -227,8 +227,13 @@ struct oftable {
  * With few exceptions, ofproto implementations may look at these fields but
  * should not modify them. */
 struct rule {
-    struct ofproto *ofproto;     /* The ofproto that contains this rule. */
-    struct cls_rule cr;          /* In owning ofproto's classifier. */
+    /* Where this rule resides in an OpenFlow switch.
+     *
+     * These are immutable once the rule is constructed, hence 'const'. */
+    struct ofproto *const ofproto; /* The ofproto that contains this rule. */
+    const struct cls_rule cr;      /* In owning ofproto's classifier. */
+    const uint8_t table_id;        /* Index in ofproto's 'tables' array. */
+
     atomic_uint ref_count;
 
     struct ofoperation *pending; /* Operation now in progress, if nonnull. */
@@ -240,7 +245,6 @@ struct rule {
     long long int created;       /* Creation time. */
     long long int modified;      /* Time of last modification. */
     long long int used;          /* Last use; time created if never used. */
-    uint8_t table_id;            /* Index in ofproto's 'tables' array. */
     enum ofputil_flow_mod_flags flags;
 
     uint16_t hard_timeout OVS_GUARDED; /* In seconds from ->modified. */