Make the string parameters const for do_flow_mod__()
[sliver-openvswitch.git] / lib / ofp-parse.c
index f96f817..9640a71 100644 (file)
@@ -249,6 +249,24 @@ parse_note(struct ofpbuf *b, const char *arg)
     nan->len = htons(b->size - start_ofs);
 }
 
+static void
+parse_fin_timeout(struct ofpbuf *b, char *arg)
+{
+    struct nx_action_fin_timeout *naft;
+    char *key, *value;
+
+    naft = ofputil_put_NXAST_FIN_TIMEOUT(b);
+    while (ofputil_parse_key_value(&arg, &key, &value)) {
+        if (!strcmp(key, "idle_timeout")) {
+            naft->fin_idle_timeout = htons(str_to_u16(value, key));
+        } else if (!strcmp(key, "hard_timeout")) {
+            naft->fin_hard_timeout = htons(str_to_u16(value, key));
+        } else {
+            ovs_fatal(0, "invalid key '%s' in 'fin_timeout' argument", key);
+        }
+    }
+}
+
 static void
 parse_named_action(enum ofputil_action_code code, const struct flow *flow,
                    struct ofpbuf *b, char *arg)
@@ -367,6 +385,10 @@ parse_named_action(enum ofputil_action_code code, const struct flow *flow,
     case OFPUTIL_NXAST_DEC_TTL:
         ofputil_put_NXAST_DEC_TTL(b);
         break;
+
+    case OFPUTIL_NXAST_FIN_TIMEOUT:
+        parse_fin_timeout(b, arg);
+        break;
     }
 }
 
@@ -646,8 +668,8 @@ parse_ofp_actions(const char *s_, struct ofpbuf *actions)
  * flow. */
 void
 parse_ofp_flow_mod_str(struct list *packets, enum nx_flow_format *cur_format,
-                       bool *flow_mod_table_id, char *string, uint16_t command,
-                       bool verbose)
+                       bool *flow_mod_table_id, const char *string,
+                       uint16_t command, bool verbose)
 {
     enum nx_flow_format min_format, next_format;
     struct cls_rule rule_copy;
@@ -707,7 +729,7 @@ parse_ofp_flow_mod_file(struct list *packets,
 
 void
 parse_ofp_flow_stats_request_str(struct ofputil_flow_stats_request *fsr,
-                                 bool aggregate, char *string)
+                                 bool aggregate, const char *string)
 {
     struct ofputil_flow_mod fm;