-
-uint64_t nxm_read_field_bits(ovs_be32 header, ovs_be16 ofs_nbits,
- const struct flow *);
-
-void nxm_parse_reg_move(struct nx_action_reg_move *, const char *);
-void nxm_parse_reg_load(struct nx_action_reg_load *, const char *);
-
-void nxm_format_reg_move(const struct nx_action_reg_move *, struct ds *);
-void nxm_format_reg_load(const struct nx_action_reg_load *, struct ds *);
-
-int nxm_check_reg_move(const struct nx_action_reg_move *, const struct flow *);
-int nxm_check_reg_load(const struct nx_action_reg_load *, const struct flow *);
-int nxm_src_check(ovs_be32 src, unsigned int ofs, unsigned int n_bits,
- const struct flow *);
-int nxm_dst_check(ovs_be32 dst, unsigned int ofs, unsigned int n_bits,
- const struct flow *);
-
-void nxm_execute_reg_move(const struct nx_action_reg_move *, struct flow *);
-void nxm_execute_reg_load(const struct nx_action_reg_load *, struct flow *);
-void nxm_reg_load(ovs_be32 dst, ovs_be16 ofs_nbits, uint64_t src_data,
- struct flow *);
+int oxm_match_from_string(const char *, struct ofpbuf *);
+
+char *nxm_parse_reg_move(struct ofpact_reg_move *, const char *)
+ WARN_UNUSED_RESULT;
+char *nxm_parse_reg_load(struct ofpact_reg_load *, const char *)
+ WARN_UNUSED_RESULT;
+
+void nxm_format_reg_move(const struct ofpact_reg_move *, struct ds *);
+void nxm_format_reg_load(const struct ofpact_reg_load *, struct ds *);
+
+enum ofperr nxm_reg_move_from_openflow(const struct nx_action_reg_move *,
+ struct ofpbuf *ofpacts);
+enum ofperr nxm_reg_load_from_openflow(const struct nx_action_reg_load *,
+ struct ofpbuf *ofpacts);
+
+enum ofperr nxm_reg_move_check(const struct ofpact_reg_move *,
+ const struct flow *);
+enum ofperr nxm_reg_load_check(const struct ofpact_reg_load *,
+ const struct flow *);
+
+void nxm_reg_move_to_nxast(const struct ofpact_reg_move *,
+ struct ofpbuf *openflow);
+void nxm_reg_load_to_nxast(const struct ofpact_reg_load *,
+ struct ofpbuf *openflow);
+
+void nxm_execute_reg_move(const struct ofpact_reg_move *, struct flow *,
+ struct flow_wildcards *);
+void nxm_execute_reg_load(const struct ofpact_reg_load *, struct flow *,
+ struct flow_wildcards *);
+void nxm_reg_load(const struct mf_subfield *, uint64_t src_data,
+ struct flow *, struct flow_wildcards *);
+
+char *nxm_parse_stack_action(struct ofpact_stack *, const char *)
+ WARN_UNUSED_RESULT;
+
+void nxm_format_stack_push(const struct ofpact_stack *, struct ds *);
+void nxm_format_stack_pop(const struct ofpact_stack *, struct ds *);
+
+enum ofperr nxm_stack_push_from_openflow(const struct nx_action_stack *,
+ struct ofpbuf *ofpacts);
+enum ofperr nxm_stack_pop_from_openflow(const struct nx_action_stack *,
+ struct ofpbuf *ofpacts);
+enum ofperr nxm_stack_push_check(const struct ofpact_stack *,
+ const struct flow *);
+enum ofperr nxm_stack_pop_check(const struct ofpact_stack *,
+ const struct flow *);
+
+void nxm_stack_push_to_nxast(const struct ofpact_stack *,
+ struct ofpbuf *openflow);
+void nxm_stack_pop_to_nxast(const struct ofpact_stack *,
+ struct ofpbuf *openflow);
+
+void nxm_execute_stack_push(const struct ofpact_stack *,
+ const struct flow *, struct flow_wildcards *,
+ struct ofpbuf *);
+void nxm_execute_stack_pop(const struct ofpact_stack *,
+ struct flow *, struct flow_wildcards *,
+ struct ofpbuf *);