aboutsummaryrefslogtreecommitdiff
path: root/lib/nx-match.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2012-01-12 15:48:19 -0800
committerBen Pfaff <blp@nicira.com>2012-01-12 15:54:25 -0800
commit90bf1e0732ac9b11dd51ca856b635cac1f0269c1 (patch)
tree05e5852229f3b6f85218a74f9401b3b765459599 /lib/nx-match.h
parente25c55d28f30b537aa657797c41483a9bab59b93 (diff)
Better abstract OpenFlow error codes.
This commit switches from using the actual protocol values of error codes internally in Open vSwitch, to using abstract values that are translated to and from protocol values at message parsing and serialization time. I believe that this makes the code easier to read and to write. This is also one step along the way toward OpenFlow 1.1 support because OpenFlow 1.1 renumbered a bunch of error codes. Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/nx-match.h')
-rw-r--r--lib/nx-match.h25
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/nx-match.h b/lib/nx-match.h
index 8931d58a..c1892873 100644
--- a/lib/nx-match.h
+++ b/lib/nx-match.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2011 Nicira Networks.
+ * Copyright (c) 2010, 2011, 2012 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include <sys/types.h>
#include <netinet/in.h>
#include "openvswitch/types.h"
+#include "ofp-errors.h"
struct cls_rule;
struct ds;
@@ -34,11 +35,12 @@ struct nx_action_reg_move;
* See include/openflow/nicira-ext.h for NXM specification.
*/
-int nx_pull_match(struct ofpbuf *, unsigned int match_len, uint16_t priority,
- struct cls_rule *, ovs_be64 *cookie, ovs_be64 *cookie_mask);
-int nx_pull_match_loose(struct ofpbuf *, unsigned int match_len,
- uint16_t priority, struct cls_rule *,
- ovs_be64 *cookie, ovs_be64 *cookie_mask);
+enum ofperr nx_pull_match(struct ofpbuf *, unsigned int match_len,
+ uint16_t priority, struct cls_rule *,
+ ovs_be64 *cookie, ovs_be64 *cookie_mask);
+enum ofperr nx_pull_match_loose(struct ofpbuf *, unsigned int match_len,
+ uint16_t priority, struct cls_rule *,
+ ovs_be64 *cookie, ovs_be64 *cookie_mask);
int nx_put_match(struct ofpbuf *, const struct cls_rule *,
ovs_be64 cookie, ovs_be64 cookie_mask);
@@ -55,11 +57,12 @@ 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 *);
+enum ofperr nxm_check_reg_load(const struct nx_action_reg_load *,
+ const struct flow *);
+enum ofperr nxm_src_check(ovs_be32 src, unsigned int ofs, unsigned int n_bits,
+ const struct flow *);
+enum ofperr 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 *);