Inline flow_compare() and flow_hash(), for performance.
authorBen Pfaff <blp@nicira.com>
Tue, 23 Dec 2008 23:04:54 +0000 (15:04 -0800)
committerBen Pfaff <blp@nicira.com>
Tue, 23 Dec 2008 23:06:14 +0000 (15:06 -0800)
lib/flow.c
lib/flow.h

index 8b05b0a53e56e0ac4bda0009d9b2ede866c38c47..7ba8ee4e77c52c592759178dd5b90171610b37a4 100644 (file)
@@ -220,18 +220,3 @@ flow_print(FILE *stream, const struct flow *flow)
             IP_ARGS(&flow->nw_src), IP_ARGS(&flow->nw_dst),
             ntohs(flow->tp_src), ntohs(flow->tp_dst));
 }
-
-int
-flow_compare(const struct flow *a, const struct flow *b)
-{
-    return memcmp(a, b, sizeof *a);
-}
-
-size_t
-flow_hash(const struct flow *flow, uint32_t basis)
-{
-    BUILD_ASSERT_DECL(!(sizeof *flow % sizeof(uint32_t)));
-    return hash_lookup3((const uint32_t *) flow,
-                        sizeof *flow / sizeof(uint32_t), basis);
-}
-
index 1d7becf3a8f41be0dca89e11cefad35f76fd4a72..f0736526e12f0db983cbd41f79310f876d74f6f6 100644 (file)
@@ -35,6 +35,8 @@
 
 #include <stdbool.h>
 #include <stdint.h>
+#include <string.h>
+#include "hash.h"
 #include "util.h"
 
 struct ofpbuf;
@@ -60,7 +62,21 @@ BUILD_ASSERT_DECL(sizeof(struct flow) == 32);
 
 int flow_extract(struct ofpbuf *, uint16_t in_port, struct flow *);
 void flow_print(FILE *, const struct flow *);
-int flow_compare(const struct flow *, const struct flow *);
-size_t flow_hash(const struct flow *, uint32_t basis);
+static inline int flow_compare(const struct flow *, const struct flow *);
+static inline size_t flow_hash(const struct flow *, uint32_t basis);
+
+static inline int
+flow_compare(const struct flow *a, const struct flow *b)
+{
+    return memcmp(a, b, sizeof *a);
+}
+
+static inline size_t
+flow_hash(const struct flow *flow, uint32_t basis)
+{
+    BUILD_ASSERT_DECL(!(sizeof *flow % sizeof(uint32_t)));
+    return hash_lookup3((const uint32_t *) flow,
+                        sizeof *flow / sizeof(uint32_t), basis);
+}
 
 #endif /* flow.h */