aboutsummaryrefslogtreecommitdiff
path: root/lib/ofp-parse.c
diff options
context:
space:
mode:
authorJarno Rajahalme <jrajahalme@nicira.com>2013-10-22 17:20:43 -0700
committerBen Pfaff <blp@nicira.com>2013-10-23 10:05:14 -0700
commitff14eb7ac9569ae09f7dc6672667cff907b35fc6 (patch)
treee86ea2656388c2e17aae8942ab9a4847ddc258e5 /lib/ofp-parse.c
parent04f01c24b522f893b663a34126beb6775176e536 (diff)
Add OF11 set IPv4 ECN action.
Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/ofp-parse.c')
-rw-r--r--lib/ofp-parse.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c
index 0e0d2f80..ee56477d 100644
--- a/lib/ofp-parse.c
+++ b/lib/ofp-parse.c
@@ -602,7 +602,7 @@ parse_named_action(enum ofputil_action_code code,
char *error = NULL;
uint16_t ethertype = 0;
uint16_t vid = 0;
- uint8_t tos = 0;
+ uint8_t tos = 0, ecn;
uint8_t pcp = 0;
switch (code) {
@@ -700,6 +700,18 @@ parse_named_action(enum ofputil_action_code code,
ofpact_put_SET_IP_DSCP(ofpacts)->dscp = tos;
break;
+ case OFPUTIL_OFPAT11_SET_NW_ECN:
+ error = str_to_u8(arg, "ECN", &ecn);
+ if (error) {
+ return error;
+ }
+
+ if (ecn & ~IP_ECN_MASK) {
+ return xasprintf("%s: not a valid ECN", arg);
+ }
+ ofpact_put_SET_IP_ECN(ofpacts)->ecn = ecn;
+ break;
+
case OFPUTIL_OFPAT11_DEC_NW_TTL:
NOT_REACHED();