X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fofp-actions.h;h=0876ed702fcb3b55776aacef8606e6c01dd2b84f;hb=0141e875a14cc30fe9c207a83616861055531d4d;hp=ca33ca897142afa4910fcf16de50053e16b9b2b2;hpb=d017eeb9f9ebcb46c24a67fd301b3e36cd26a04e;p=sliver-openvswitch.git diff --git a/lib/ofp-actions.h b/lib/ofp-actions.h index ca33ca897..0876ed702 100644 --- a/lib/ofp-actions.h +++ b/lib/ofp-actions.h @@ -51,6 +51,7 @@ #define OFPACTS \ /* Output. */ \ DEFINE_OFPACT(OUTPUT, ofpact_output, ofpact) \ + DEFINE_OFPACT(GROUP, ofpact_group, ofpact) \ DEFINE_OFPACT(CONTROLLER, ofpact_controller, ofpact) \ DEFINE_OFPACT(ENQUEUE, ofpact_enqueue, ofpact) \ DEFINE_OFPACT(OUTPUT_REG, ofpact_output_reg, ofpact) \ @@ -414,7 +415,7 @@ struct ofpact_learn { uint16_t hard_timeout; /* Max time before discarding (seconds). */ uint16_t priority; /* Priority level of flow entry. */ uint64_t cookie; /* Cookie for new flow. */ - uint16_t flags; /* Either 0 or OFPFF_SEND_FLOW_REM. */ + enum ofputil_flow_mod_flags flags; uint8_t table_id; /* Table to insert flow entry. */ uint16_t fin_idle_timeout; /* Idle timeout after FIN, if nonzero. */ uint16_t fin_hard_timeout; /* Hard timeout after FIN, if nonzero. */ @@ -490,6 +491,14 @@ struct ofpact_goto_table { uint8_t table_id; }; +/* OFPACT_GROUP. + * + * Used for OFPAT11_GROUP. */ +struct ofpact_group { + struct ofpact ofpact; + uint32_t group_id; +}; + /* Converting OpenFlow to ofpacts. */ enum ofperr ofpacts_pull_openflow10(struct ofpbuf *openflow, unsigned int actions_len, @@ -517,8 +526,11 @@ void ofpacts_put_openflow11_instructions(const struct ofpact[], /* Working with ofpacts. */ bool ofpacts_output_to_port(const struct ofpact[], size_t ofpacts_len, ofp_port_t port); +bool ofpacts_output_to_group(const struct ofpact[], size_t ofpacts_len, + uint32_t group_id); bool ofpacts_equal(const struct ofpact a[], size_t a_len, const struct ofpact b[], size_t b_len); +uint32_t ofpacts_get_meter(const struct ofpact[], size_t ofpacts_len); /* Formatting ofpacts. *