From f1defbf96df61a1fce8ec8ca63a56018bff4c940 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 26 Oct 2010 09:41:24 -0700 Subject: [PATCH] ofp-util: Make validate_actions() take a struct flow *. The upcoming support for actions on registers will require the flow to validate actions, so this commit adds the parameter in advance. It is not yet used. --- lib/ofp-util.c | 2 +- lib/ofp-util.h | 2 +- ofproto/ofproto.c | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/ofp-util.c b/lib/ofp-util.c index b1678ad8a..838617c0e 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -612,7 +612,7 @@ check_action(const union ofp_action *a, unsigned int len, int max_ports) int validate_actions(const union ofp_action *actions, size_t n_actions, - int max_ports) + const struct flow *flow OVS_UNUSED, int max_ports) { size_t i; diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 28bce5f89..6f8c2594f 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -78,7 +78,7 @@ const union ofp_action *actions_first(struct actions_iterator *, size_t n_actions); const union ofp_action *actions_next(struct actions_iterator *); int validate_actions(const union ofp_action *, size_t n_actions, - int max_ports); + const struct flow *, int max_ports); bool action_outputs_to_port(const union ofp_action *, uint16_t port); void normalize_match(struct ofp_match *); diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 36a23d956..cd87cd0d5 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -2930,7 +2930,7 @@ handle_packet_out(struct ofconn *ofconn, struct ofp_header *oh) /* Extract flow, check actions. */ flow_extract(&payload, 0, ofp_port_to_odp_port(ntohs(opo->in_port)), &flow); - error = validate_actions(ofp_actions, n_ofp_actions, p->max_ports); + error = validate_actions(ofp_actions, n_ofp_actions, &flow, p->max_ports); if (error) { goto exit; } @@ -4022,7 +4022,8 @@ flow_mod_core(struct ofconn *ofconn, struct flow_mod *fm) return error; } - error = validate_actions(fm->actions, fm->n_actions, p->max_ports); + error = validate_actions(fm->actions, fm->n_actions, + &fm->cr.flow, p->max_ports); if (error) { return error; } -- 2.43.0