X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-util.h;h=975d8d2f4aca33f88754f9f7a669d73c01a376df;hb=9ac3fce4d5aea7e963439eb97f7c2d157aef4dfc;hp=89044049195dfcfaa8206eadefbae50904efc7de;hpb=34276a57908ddac57a1f7f67addad7896503055a;p=openvswitch diff --git a/lib/ofp-util.h b/lib/ofp-util.h index 89044049..975d8d2f 100644 --- a/lib/ofp-util.h +++ b/lib/ofp-util.h @@ -74,6 +74,7 @@ enum ofputil_msg_code { OFPUTIL_NXT_ROLE_REQUEST, OFPUTIL_NXT_ROLE_REPLY, OFPUTIL_NXT_SET_FLOW_FORMAT, + OFPUTIL_NXT_FLOW_MOD_TABLE_ID, OFPUTIL_NXT_FLOW_MOD, OFPUTIL_NXT_FLOW_REMOVED, @@ -101,7 +102,6 @@ int ofputil_netmask_to_wcbits(ovs_be32 netmask); void ofputil_cls_rule_from_match(const struct ofp_match *, unsigned int priority, struct cls_rule *); void ofputil_cls_rule_to_match(const struct cls_rule *, struct ofp_match *); -char *ofp_match_to_literal_string(const struct ofp_match *match); /* dl_type translation between OpenFlow and 'struct flow' format. */ ovs_be16 ofputil_dl_type_to_openflow(ovs_be16 flow_dl_type); @@ -115,10 +115,14 @@ enum nx_flow_format ofputil_min_flow_format(const struct cls_rule *); struct ofpbuf *ofputil_make_set_flow_format(enum nx_flow_format); +/* NXT_FLOW_MOD_TABLE_ID extension. */ +struct ofpbuf *ofputil_make_flow_mod_table_id(bool flow_mod_table_id); + /* Flow format independent flow_mod. */ struct flow_mod { struct cls_rule cr; ovs_be64 cookie; + uint8_t table_id; uint16_t command; uint16_t idle_timeout; uint16_t hard_timeout; @@ -129,9 +133,11 @@ struct flow_mod { size_t n_actions; }; -int ofputil_decode_flow_mod(struct flow_mod *, const struct ofp_header *); +int ofputil_decode_flow_mod(struct flow_mod *, const struct ofp_header *, + bool flow_mod_table_id); struct ofpbuf *ofputil_encode_flow_mod(const struct flow_mod *, - enum nx_flow_format); + enum nx_flow_format, + bool flow_mod_table_id); /* Flow stats or aggregate stats request, independent of flow format. */ struct flow_stats_request { @@ -245,8 +251,6 @@ struct ofpbuf *make_unbuffered_packet_out(const struct ofpbuf *packet, uint16_t in_port, uint16_t out_port); struct ofpbuf *make_echo_request(void); struct ofpbuf *make_echo_reply(const struct ofp_header *rq); - -void hton_ofp_phy_port(struct ofp_phy_port *); /* Actions. */ @@ -262,7 +266,7 @@ const union ofp_action *actions_next(struct actions_iterator *); int validate_actions(const union ofp_action *, size_t n_actions, const struct flow *, int max_ports); -bool action_outputs_to_port(const union ofp_action *, uint16_t port); +bool action_outputs_to_port(const union ofp_action *, ovs_be16 port); int ofputil_pull_actions(struct ofpbuf *, unsigned int actions_len, union ofp_action **, size_t *);