From: Ben Warren <b...@skyportsystems.com> Signed-off-by: Ben Warren <b...@skyportsystems.com> --- include/openvswitch/automake.mk | 1 + include/openvswitch/ofpbuf.h | 277 ++++++++++++++++++++++++++++++++++++++++ lib/automake.mk | 1 - lib/bfd.c | 2 +- lib/bundle.c | 2 +- lib/dpctl.c | 2 +- lib/dpif-netdev.c | 2 +- lib/dpif-netlink.c | 2 +- lib/dpif.c | 2 +- lib/jsonrpc.c | 2 +- lib/learn.c | 2 +- lib/learning-switch.c | 2 +- lib/netdev-dummy.c | 2 +- lib/netdev-linux.c | 2 +- lib/netdev-windows.c | 2 +- lib/netlink-conntrack.c | 2 +- lib/netlink-conntrack.h | 2 +- lib/netlink-notifier.c | 2 +- lib/netlink-socket.c | 2 +- lib/netlink-socket.h | 2 +- lib/netlink.c | 2 +- lib/nx-match.c | 2 +- lib/odp-util.c | 2 +- lib/ofp-actions.c | 2 +- lib/ofp-errors.c | 2 +- lib/ofp-msgs.c | 2 +- lib/ofp-parse.c | 2 +- lib/ofp-print.c | 2 +- lib/ofp-prop.c | 2 +- lib/ofp-util.c | 2 +- lib/ofpbuf.c | 2 +- lib/ofpbuf.h | 275 --------------------------------------- lib/rconn.c | 2 +- lib/route-table.c | 2 +- lib/rstp-state-machines.c | 2 +- lib/rstp.c | 2 +- lib/rtnetlink.c | 3 +- lib/stp.c | 2 +- lib/stream-ssl.c | 2 +- lib/stream.c | 2 +- lib/tnl-ports.c | 2 +- lib/tun-metadata.h | 2 +- lib/vconn-stream.c | 2 +- lib/vconn.c | 2 +- lib/vlog.c | 2 +- ofproto/bond.c | 4 +- ofproto/bundles.c | 2 +- ofproto/connmgr.c | 2 +- ofproto/fail-open.c | 2 +- ofproto/in-band.c | 2 +- ofproto/netflow.c | 2 +- ofproto/ofproto-dpif-ipfix.c | 2 +- ofproto/ofproto-dpif-monitor.c | 2 +- ofproto/ofproto-dpif-rid.c | 2 +- ofproto/ofproto-dpif-sflow.c | 2 +- ofproto/ofproto-dpif-upcall.c | 2 +- ofproto/ofproto-dpif-xlate.h | 2 +- ofproto/ofproto-dpif.c | 2 +- ofproto/ofproto.c | 2 +- ofproto/pinsched.c | 2 +- ofproto/tunnel.c | 2 +- ovn/controller/lflow.c | 2 +- ovn/controller/ofctrl.c | 2 +- ovn/controller/physical.c | 2 +- ovn/lib/actions.c | 2 +- tests/test-bundle.c | 2 +- tests/test-flows.c | 2 +- tests/test-list.c | 1 + tests/test-netflow.c | 2 +- tests/test-odp.c | 2 +- tests/test-ofpbuf.c | 2 +- tests/test-ovn.c | 2 +- tests/test-rstp.c | 2 +- tests/test-sflow.c | 2 +- tests/test-stp.c | 2 +- tests/test-vconn.c | 2 +- utilities/nlmon.c | 2 +- utilities/ovs-ofctl.c | 2 +- utilities/ovs-testcontroller.c | 2 +- vswitchd/bridge.c | 2 +- vswitchd/system-stats.c | 2 +- 81 files changed, 357 insertions(+), 353 deletions(-) create mode 100644 include/openvswitch/ofpbuf.h delete mode 100644 lib/ofpbuf.h
diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk index a6343d2..67c164d 100644 --- a/include/openvswitch/automake.mk +++ b/include/openvswitch/automake.mk @@ -4,6 +4,7 @@ openvswitchinclude_HEADERS = \ include/openvswitch/dynamic-string.h \ include/openvswitch/geneve.h \ include/openvswitch/list.h \ + include/openvswitch/ofpbuf.h \ include/openvswitch/ofp-errors.h \ include/openvswitch/ofp-parse.h \ include/openvswitch/thread.h \ diff --git a/include/openvswitch/ofpbuf.h b/include/openvswitch/ofpbuf.h new file mode 100644 index 0000000..5cfdd94 --- /dev/null +++ b/include/openvswitch/ofpbuf.h @@ -0,0 +1,277 @@ +/* + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016 Nicira, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OPENVSWITCH_OFPBUF_H +#define OPENVSWITCH_OFPBUF_H 1 + +#include <stddef.h> +#include <stdint.h> +#include <stdlib.h> +#include <string.h> +#include "openvswitch/dynamic-string.h" +#include "openvswitch/list.h" +#include "openvswitch/util.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum OVS_PACKED_ENUM ofpbuf_source { + OFPBUF_MALLOC, /* Obtained via malloc(). */ + OFPBUF_STACK, /* Un-movable stack space or static buffer. */ + OFPBUF_STUB, /* Starts on stack, may expand into heap. */ +}; + +/* Buffer for holding arbitrary data. An ofpbuf is automatically reallocated + * as necessary if it grows too large for the available memory. + * + * 'header' and 'msg' conventions: + * + * OpenFlow messages: 'header' points to the start of the OpenFlow + * header, while 'msg' is the OpenFlow msg bofy. + * When parsing, the 'data' will move past these, as data is being + * pulled from the OpenFlow message. + * + * Caution: buffer manipulation of 'struct ofpbuf' must always update + * the 'header' and 'msg' pointers. + * + * + * Actions: When encoding OVS action lists, the 'header' is used + * as a pointer to the beginning of the current action (see ofpact_put()). + * + * rconn: Reuses 'header' as a private pointer while queuing. + */ +struct ofpbuf { + void *base; /* First byte of allocated space. */ + void *data; /* First byte actually in use. */ + uint32_t size; /* Number of bytes in use. */ + uint32_t allocated; /* Number of bytes allocated. */ + + void *header; /* OpenFlow header. */ + void *msg; /* message's body */ + struct ovs_list list_node; /* Private list element for use by owner. */ + enum ofpbuf_source source; /* Source of memory allocated as 'base'. */ +}; + +/* An initializer for a struct ofpbuf that will be initially empty and uses the + * space in STUB (which should be an array) as a stub. This is the initializer + * form of ofpbuf_use_stub(). + * + * Usage example: + * + * uint64_t stub[1024 / 8]; // 1 kB stub properly aligned for 64-bit data. + * struct ofpbuf ofpbuf = OFPBUF_STUB_INITIALIZER(stub); + */ +#define OFPBUF_STUB_INITIALIZER(STUB) { \ + .base = (STUB), \ + .data = (STUB), \ + .size = 0, \ + .allocated = sizeof (STUB), \ + .header = NULL, \ + .msg = NULL, \ + .list_node = OVS_LIST_POISON, \ + .source = OFPBUF_STUB, \ + } + +/* An initializer for a struct ofpbuf whose data starts at DATA and continues + * for SIZE bytes. This is appropriate for an ofpbuf that will be used to + * inspect existing data, without moving it around or reallocating it, and + * generally without modifying it at all. This is the initializer form of + * ofpbuf_use_const(). + */ +static inline struct ofpbuf +ofpbuf_const_initializer(const void *data, size_t size) +{ + return (struct ofpbuf) { + .base = CONST_CAST(void *, data), + .data = CONST_CAST(void *, data), + .size = size, + .allocated = size, + .header = NULL, + .msg = NULL, + .list_node = OVS_LIST_POISON, + .source = OFPBUF_STACK, + }; +} + +void ofpbuf_use_ds(struct ofpbuf *, const struct ds *); +void ofpbuf_use_stack(struct ofpbuf *, void *, size_t); +void ofpbuf_use_stub(struct ofpbuf *, void *, size_t); +void ofpbuf_use_const(struct ofpbuf *, const void *, size_t); + +void ofpbuf_init(struct ofpbuf *, size_t); +void ofpbuf_uninit(struct ofpbuf *); +void ofpbuf_reinit(struct ofpbuf *, size_t); + +struct ofpbuf *ofpbuf_new(size_t); +struct ofpbuf *ofpbuf_new_with_headroom(size_t, size_t headroom); +struct ofpbuf *ofpbuf_clone(const struct ofpbuf *); +struct ofpbuf *ofpbuf_clone_with_headroom(const struct ofpbuf *, + size_t headroom); +struct ofpbuf *ofpbuf_clone_data(const void *, size_t); +struct ofpbuf *ofpbuf_clone_data_with_headroom(const void *, size_t, + size_t headroom); +static inline void ofpbuf_delete(struct ofpbuf *); + +static inline void *ofpbuf_at(const struct ofpbuf *, size_t offset, + size_t size); +static inline void *ofpbuf_at_assert(const struct ofpbuf *, size_t offset, + size_t size); +static inline void *ofpbuf_tail(const struct ofpbuf *); +static inline void *ofpbuf_end(const struct ofpbuf *); + +void *ofpbuf_put_uninit(struct ofpbuf *, size_t); +void *ofpbuf_put_zeros(struct ofpbuf *, size_t); +void *ofpbuf_put(struct ofpbuf *, const void *, size_t); +char *ofpbuf_put_hex(struct ofpbuf *, const char *s, size_t *n); +void ofpbuf_reserve(struct ofpbuf *, size_t); +void *ofpbuf_push_uninit(struct ofpbuf *b, size_t); +void *ofpbuf_push_zeros(struct ofpbuf *, size_t); +void *ofpbuf_push(struct ofpbuf *b, const void *, size_t); + +static inline size_t ofpbuf_headroom(const struct ofpbuf *); +static inline size_t ofpbuf_tailroom(const struct ofpbuf *); +static inline size_t ofpbuf_msgsize(const struct ofpbuf *); +void ofpbuf_prealloc_headroom(struct ofpbuf *, size_t); +void ofpbuf_prealloc_tailroom(struct ofpbuf *, size_t); +void ofpbuf_trim(struct ofpbuf *); +void ofpbuf_padto(struct ofpbuf *, size_t); +void ofpbuf_shift(struct ofpbuf *, int); + +static inline void ofpbuf_clear(struct ofpbuf *); +static inline void *ofpbuf_pull(struct ofpbuf *, size_t); +static inline void *ofpbuf_try_pull(struct ofpbuf *, size_t); + +void *ofpbuf_steal_data(struct ofpbuf *); + +char *ofpbuf_to_string(const struct ofpbuf *, size_t maxbytes); +static inline struct ofpbuf *ofpbuf_from_list(const struct ovs_list *); +void ofpbuf_list_delete(struct ovs_list *); +static inline bool ofpbuf_equal(const struct ofpbuf *, const struct ofpbuf *); + + +/* Frees memory that 'b' points to, as well as 'b' itself. */ +static inline void ofpbuf_delete(struct ofpbuf *b) +{ + if (b) { + ofpbuf_uninit(b); + free(b); + } +} + +/* If 'b' contains at least 'offset + size' bytes of data, returns a pointer to + * byte 'offset'. Otherwise, returns a null pointer. */ +static inline void *ofpbuf_at(const struct ofpbuf *b, size_t offset, + size_t size) +{ + return offset + size <= b->size ? (char *) b->data + offset : NULL; +} + +/* Returns a pointer to byte 'offset' in 'b', which must contain at least + * 'offset + size' bytes of data. */ +static inline void *ofpbuf_at_assert(const struct ofpbuf *b, size_t offset, + size_t size) +{ + ovs_assert(offset + size <= b->size); + return ((char *) b->data) + offset; +} + +/* Returns a pointer to byte following the last byte of data in use in 'b'. */ +static inline void *ofpbuf_tail(const struct ofpbuf *b) +{ + return (char *) b->data + b->size; +} + +/* Returns a pointer to byte following the last byte allocated for use (but + * not necessarily in use) in 'b'. */ +static inline void *ofpbuf_end(const struct ofpbuf *b) +{ + return (char *) b->base + b->allocated; +} + +/* Returns the number of bytes of headroom in 'b', that is, the number of bytes + * of unused space in ofpbuf 'b' before the data that is in use. (Most + * commonly, the data in a ofpbuf is at its beginning, and thus the ofpbuf's + * headroom is 0.) */ +static inline size_t ofpbuf_headroom(const struct ofpbuf *b) +{ + return (char*)b->data - (char*)b->base; +} + +/* Returns the number of bytes that may be appended to the tail end of ofpbuf + * 'b' before the ofpbuf must be reallocated. */ +static inline size_t ofpbuf_tailroom(const struct ofpbuf *b) +{ + return (char*)ofpbuf_end(b) - (char*)ofpbuf_tail(b); +} + +/* Returns the number of bytes from 'b->header' to 'b->msg', that is, the + * length of 'b''s header. */ +static inline size_t +ofpbuf_headersize(const struct ofpbuf *b) +{ + return (char *)b->msg - (char *)b->header; +} + +/* Returns the number of bytes from 'b->msg' to 'b->data + b->size', that is, + * the length of the used space in 'b' starting from 'msg'. */ +static inline size_t +ofpbuf_msgsize(const struct ofpbuf *b) +{ + return (char *)ofpbuf_tail(b) - (char *)b->msg; +} + +/* Clears any data from 'b'. */ +static inline void ofpbuf_clear(struct ofpbuf *b) +{ + b->data = b->base; + b->size = 0; +} + +/* Removes 'size' bytes from the head end of 'b', which must contain at least + * 'size' bytes of data. Returns the first byte of data removed. */ +static inline void *ofpbuf_pull(struct ofpbuf *b, size_t size) +{ + void *data = b->data; + b->data = (char*)b->data + size; + b->size = b->size - size; + return data; +} + +/* If 'b' has at least 'size' bytes of data, removes that many bytes from the + * head end of 'b' and returns the first byte removed. Otherwise, returns a + * null pointer without modifying 'b'. */ +static inline void *ofpbuf_try_pull(struct ofpbuf *b, size_t size) +{ + return b->size >= size ? ofpbuf_pull(b, size) : NULL; +} + +static inline struct ofpbuf *ofpbuf_from_list(const struct ovs_list *list) +{ + return CONTAINER_OF(list, struct ofpbuf, list_node); +} + +static inline bool ofpbuf_equal(const struct ofpbuf *a, const struct ofpbuf *b) +{ + return a->size == b->size && + memcmp(a->data, b->data, a->size) == 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* ofpbuf.h */ diff --git a/lib/automake.mk b/lib/automake.mk index 45e2740..057315f 100644 --- a/lib/automake.mk +++ b/lib/automake.mk @@ -152,7 +152,6 @@ lib_libopenvswitch_la_SOURCES = \ lib/ofp-version-opt.h \ lib/ofp-version-opt.c \ lib/ofpbuf.c \ - lib/ofpbuf.h \ lib/ovs-atomic-c11.h \ lib/ovs-atomic-clang.h \ lib/ovs-atomic-flag-gcc4.7+.h \ diff --git a/lib/bfd.c b/lib/bfd.c index 909697f..b40c022 100644 --- a/lib/bfd.c +++ b/lib/bfd.c @@ -33,7 +33,7 @@ #include "openvswitch/list.h" #include "netdev.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-thread.h" #include "openvswitch/types.h" #include "packets.h" diff --git a/lib/bundle.c b/lib/bundle.c index 784231e..96c4554 100644 --- a/lib/bundle.c +++ b/lib/bundle.c @@ -24,7 +24,7 @@ #include "multipath.h" #include "meta-flow.h" #include "nx-match.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofp-actions.h" #include "ofp-util.h" #include "openflow/nicira-ext.h" diff --git a/lib/dpctl.c b/lib/dpctl.c index 6f45078..5f70031 100644 --- a/lib/dpctl.c +++ b/lib/dpctl.c @@ -39,7 +39,7 @@ #include "netdev-dpdk.h" #include "netlink.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-numa.h" #include "packets.h" #include "shash.h" diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index cebd6d6..3623955 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -53,7 +53,7 @@ #include "odp-execute.h" #include "odp-util.h" #include "ofp-print.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-numa.h" #include "ovs-rcu.h" #include "packets.h" diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c index 6ac973e..015ba20 100644 --- a/lib/dpif-netlink.c +++ b/lib/dpif-netlink.c @@ -45,7 +45,7 @@ #include "netlink-socket.h" #include "netlink.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "packets.h" #include "poll-loop.h" #include "random.h" diff --git a/lib/dpif.c b/lib/dpif.c index 33783e1..a784de7 100644 --- a/lib/dpif.c +++ b/lib/dpif.c @@ -35,7 +35,7 @@ #include "odp-util.h" #include "ofp-print.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "packets.h" #include "poll-loop.h" #include "route-table.h" diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c index 33d23e1..22fdd43 100644 --- a/lib/jsonrpc.c +++ b/lib/jsonrpc.c @@ -25,7 +25,7 @@ #include "fatal-signal.h" #include "json.h" #include "openvswitch/list.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-thread.h" #include "poll-loop.h" #include "reconnect.h" diff --git a/lib/learn.c b/lib/learn.c index 3db3bca..e2e8309 100644 --- a/lib/learn.c +++ b/lib/learn.c @@ -25,7 +25,7 @@ #include "nx-match.h" #include "ofp-actions.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "openvswitch/ofp-errors.h" #include "unaligned.h" diff --git a/lib/learning-switch.c b/lib/learning-switch.c index 3b23a87..7c445b2 100644 --- a/lib/learning-switch.c +++ b/lib/learning-switch.c @@ -29,7 +29,7 @@ #include "flow.h" #include "hmap.h" #include "mac-learning.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofp-actions.h" #include "ofp-msgs.h" #include "ofp-print.h" diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 91adfe6..e6d0f81 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -29,7 +29,7 @@ #include "netdev-vport.h" #include "odp-util.h" #include "ofp-print.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-atomic.h" #include "packets.h" #include "pcap-file.h" diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index 4fa8b6a..483af1c 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -61,7 +61,7 @@ #include "netlink-notifier.h" #include "netlink-socket.h" #include "netlink.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "ovs-atomic.h" #include "packets.h" diff --git a/lib/netdev-windows.c b/lib/netdev-windows.c index 093175f..ecf580d 100644 --- a/lib/netdev-windows.c +++ b/lib/netdev-windows.c @@ -24,7 +24,7 @@ #include "coverage.h" #include "fatal-signal.h" #include "netdev-provider.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "packets.h" #include "poll-loop.h" #include "shash.h" diff --git a/lib/netlink-conntrack.c b/lib/netlink-conntrack.c index bd01c35..47a3c62 100644 --- a/lib/netlink-conntrack.c +++ b/lib/netlink-conntrack.c @@ -30,7 +30,7 @@ #include "openvswitch/dynamic-string.h" #include "netlink.h" #include "netlink-socket.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openvswitch/vlog.h" #include "poll-loop.h" #include "timeval.h" diff --git a/lib/netlink-conntrack.h b/lib/netlink-conntrack.h index 04a1ee1..f75259c 100644 --- a/lib/netlink-conntrack.h +++ b/lib/netlink-conntrack.h @@ -22,7 +22,7 @@ #include "ct-dpif.h" #include "openvswitch/dynamic-string.h" #include "hmap.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "timeval.h" #include "unixctl.h" #include "util.h" diff --git a/lib/netlink-notifier.c b/lib/netlink-notifier.c index 45c9188..0e731c1 100644 --- a/lib/netlink-notifier.c +++ b/lib/netlink-notifier.c @@ -25,7 +25,7 @@ #include "coverage.h" #include "netlink.h" #include "netlink-socket.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openvswitch/vlog.h" VLOG_DEFINE_THIS_MODULE(netlink_notifier); diff --git a/lib/netlink-socket.c b/lib/netlink-socket.c index 27c7c89..81c84c0 100644 --- a/lib/netlink-socket.c +++ b/lib/netlink-socket.c @@ -29,7 +29,7 @@ #include "netlink.h" #include "netlink-protocol.h" #include "odp-netlink.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-thread.h" #include "poll-loop.h" #include "seq.h" diff --git a/lib/netlink-socket.h b/lib/netlink-socket.h index 992528b..f73fc7d 100644 --- a/lib/netlink-socket.h +++ b/lib/netlink-socket.h @@ -193,7 +193,7 @@ #include <stdbool.h> #include <stddef.h> #include <stdint.h> -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-atomic.h" #include "ovs-thread.h" diff --git a/lib/netlink.c b/lib/netlink.c index a2be59d..5d8a147 100644 --- a/lib/netlink.c +++ b/lib/netlink.c @@ -23,7 +23,7 @@ #include "coverage.h" #include "flow.h" #include "netlink-protocol.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "timeval.h" #include "unaligned.h" #include "openvswitch/vlog.h" diff --git a/lib/nx-match.c b/lib/nx-match.c index 42d8145..63dfef3 100644 --- a/lib/nx-match.c +++ b/lib/nx-match.c @@ -26,7 +26,7 @@ #include "meta-flow.h" #include "ofp-actions.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/nicira-ext.h" #include "packets.h" #include "shash.h" diff --git a/lib/odp-util.c b/lib/odp-util.c index 6fba39e..2801c6c 100644 --- a/lib/odp-util.c +++ b/lib/odp-util.c @@ -32,7 +32,7 @@ #include "openvswitch/dynamic-string.h" #include "flow.h" #include "netlink.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "packets.h" #include "simap.h" #include "timeval.h" diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index 25bcc51..dfc583f 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -31,7 +31,7 @@ #include "odp-netlink.h" #include "ofp-prop.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "unaligned.h" #include "util.h" #include "openvswitch/ofp-parse.h" diff --git a/lib/ofp-errors.c b/lib/ofp-errors.c index f20dcdb..ec04096 100644 --- a/lib/ofp-errors.c +++ b/lib/ofp-errors.c @@ -20,7 +20,7 @@ #include "openvswitch/dynamic-string.h" #include "ofp-msgs.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "openvswitch/ofp-errors.h" #include "openvswitch/vlog.h" diff --git a/lib/ofp-msgs.c b/lib/ofp-msgs.c index 9d35df6..fd6453f 100644 --- a/lib/ofp-msgs.c +++ b/lib/ofp-msgs.c @@ -20,7 +20,7 @@ #include "openvswitch/dynamic-string.h" #include "hash.h" #include "hmap.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/nicira-ext.h" #include "openflow/openflow.h" #include "ovs-thread.h" diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 60cf1c2..8c65015 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -30,7 +30,7 @@ #include "nx-match.h" #include "ofp-actions.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "ovs-thread.h" #include "packets.h" diff --git a/lib/ofp-print.c b/lib/ofp-print.c index ceb512b..c420582 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -37,7 +37,7 @@ #include "netdev.h" #include "nx-match.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofp-msgs.h" #include "ofp-util.h" #include "openflow/openflow.h" diff --git a/lib/ofp-prop.c b/lib/ofp-prop.c index 618f8b0..4f66d88 100644 --- a/lib/ofp-prop.c +++ b/lib/ofp-prop.c @@ -19,7 +19,7 @@ #include "ofp-prop.h" #include "byte-order.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openvswitch/ofp-errors.h" #include "openvswitch/vlog.h" #include "util.h" diff --git a/lib/ofp-util.c b/lib/ofp-util.c index 7731990..529f7f0 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -37,7 +37,7 @@ #include "ofp-msgs.h" #include "ofp-prop.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/netronome-ext.h" #include "packets.h" #include "pktbuf.h" diff --git a/lib/ofpbuf.c b/lib/ofpbuf.c index f45ff44..909291b 100644 --- a/lib/ofpbuf.c +++ b/lib/ofpbuf.c @@ -15,7 +15,7 @@ */ #include <config.h> -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include <stdlib.h> #include <string.h> #include "openvswitch/dynamic-string.h" diff --git a/lib/ofpbuf.h b/lib/ofpbuf.h deleted file mode 100644 index d95a1dd..0000000 --- a/lib/ofpbuf.h +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016 Nicira, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef OFPBUF_H -#define OFPBUF_H 1 - -#include <stddef.h> -#include <stdint.h> -#include "openvswitch/list.h" -#include "packets.h" -#include "util.h" - -#ifdef __cplusplus -extern "C" { -#endif - -enum OVS_PACKED_ENUM ofpbuf_source { - OFPBUF_MALLOC, /* Obtained via malloc(). */ - OFPBUF_STACK, /* Un-movable stack space or static buffer. */ - OFPBUF_STUB, /* Starts on stack, may expand into heap. */ -}; - -/* Buffer for holding arbitrary data. An ofpbuf is automatically reallocated - * as necessary if it grows too large for the available memory. - * - * 'header' and 'msg' conventions: - * - * OpenFlow messages: 'header' points to the start of the OpenFlow - * header, while 'msg' is the OpenFlow msg bofy. - * When parsing, the 'data' will move past these, as data is being - * pulled from the OpenFlow message. - * - * Caution: buffer manipulation of 'struct ofpbuf' must always update - * the 'header' and 'msg' pointers. - * - * - * Actions: When encoding OVS action lists, the 'header' is used - * as a pointer to the beginning of the current action (see ofpact_put()). - * - * rconn: Reuses 'header' as a private pointer while queuing. - */ -struct ofpbuf { - void *base; /* First byte of allocated space. */ - void *data; /* First byte actually in use. */ - uint32_t size; /* Number of bytes in use. */ - uint32_t allocated; /* Number of bytes allocated. */ - - void *header; /* OpenFlow header. */ - void *msg; /* message's body */ - struct ovs_list list_node; /* Private list element for use by owner. */ - enum ofpbuf_source source; /* Source of memory allocated as 'base'. */ -}; - -/* An initializer for a struct ofpbuf that will be initially empty and uses the - * space in STUB (which should be an array) as a stub. This is the initializer - * form of ofpbuf_use_stub(). - * - * Usage example: - * - * uint64_t stub[1024 / 8]; // 1 kB stub properly aligned for 64-bit data. - * struct ofpbuf ofpbuf = OFPBUF_STUB_INITIALIZER(stub); - */ -#define OFPBUF_STUB_INITIALIZER(STUB) { \ - .base = (STUB), \ - .data = (STUB), \ - .size = 0, \ - .allocated = sizeof (STUB), \ - .header = NULL, \ - .msg = NULL, \ - .list_node = OVS_LIST_POISON, \ - .source = OFPBUF_STUB, \ - } - -/* An initializer for a struct ofpbuf whose data starts at DATA and continues - * for SIZE bytes. This is appropriate for an ofpbuf that will be used to - * inspect existing data, without moving it around or reallocating it, and - * generally without modifying it at all. This is the initializer form of - * ofpbuf_use_const(). - */ -static inline struct ofpbuf -ofpbuf_const_initializer(const void *data, size_t size) -{ - return (struct ofpbuf) { - .base = CONST_CAST(void *, data), - .data = CONST_CAST(void *, data), - .size = size, - .allocated = size, - .header = NULL, - .msg = NULL, - .list_node = OVS_LIST_POISON, - .source = OFPBUF_STACK, - }; -} - -void ofpbuf_use_ds(struct ofpbuf *, const struct ds *); -void ofpbuf_use_stack(struct ofpbuf *, void *, size_t); -void ofpbuf_use_stub(struct ofpbuf *, void *, size_t); -void ofpbuf_use_const(struct ofpbuf *, const void *, size_t); - -void ofpbuf_init(struct ofpbuf *, size_t); -void ofpbuf_uninit(struct ofpbuf *); -void ofpbuf_reinit(struct ofpbuf *, size_t); - -struct ofpbuf *ofpbuf_new(size_t); -struct ofpbuf *ofpbuf_new_with_headroom(size_t, size_t headroom); -struct ofpbuf *ofpbuf_clone(const struct ofpbuf *); -struct ofpbuf *ofpbuf_clone_with_headroom(const struct ofpbuf *, - size_t headroom); -struct ofpbuf *ofpbuf_clone_data(const void *, size_t); -struct ofpbuf *ofpbuf_clone_data_with_headroom(const void *, size_t, - size_t headroom); -static inline void ofpbuf_delete(struct ofpbuf *); - -static inline void *ofpbuf_at(const struct ofpbuf *, size_t offset, - size_t size); -static inline void *ofpbuf_at_assert(const struct ofpbuf *, size_t offset, - size_t size); -static inline void *ofpbuf_tail(const struct ofpbuf *); -static inline void *ofpbuf_end(const struct ofpbuf *); - -void *ofpbuf_put_uninit(struct ofpbuf *, size_t); -void *ofpbuf_put_zeros(struct ofpbuf *, size_t); -void *ofpbuf_put(struct ofpbuf *, const void *, size_t); -char *ofpbuf_put_hex(struct ofpbuf *, const char *s, size_t *n); -void ofpbuf_reserve(struct ofpbuf *, size_t); -void *ofpbuf_push_uninit(struct ofpbuf *b, size_t); -void *ofpbuf_push_zeros(struct ofpbuf *, size_t); -void *ofpbuf_push(struct ofpbuf *b, const void *, size_t); - -static inline size_t ofpbuf_headroom(const struct ofpbuf *); -static inline size_t ofpbuf_tailroom(const struct ofpbuf *); -static inline size_t ofpbuf_msgsize(const struct ofpbuf *); -void ofpbuf_prealloc_headroom(struct ofpbuf *, size_t); -void ofpbuf_prealloc_tailroom(struct ofpbuf *, size_t); -void ofpbuf_trim(struct ofpbuf *); -void ofpbuf_padto(struct ofpbuf *, size_t); -void ofpbuf_shift(struct ofpbuf *, int); - -static inline void ofpbuf_clear(struct ofpbuf *); -static inline void *ofpbuf_pull(struct ofpbuf *, size_t); -static inline void *ofpbuf_try_pull(struct ofpbuf *, size_t); - -void *ofpbuf_steal_data(struct ofpbuf *); - -char *ofpbuf_to_string(const struct ofpbuf *, size_t maxbytes); -static inline struct ofpbuf *ofpbuf_from_list(const struct ovs_list *); -void ofpbuf_list_delete(struct ovs_list *); -static inline bool ofpbuf_equal(const struct ofpbuf *, const struct ofpbuf *); - - -/* Frees memory that 'b' points to, as well as 'b' itself. */ -static inline void ofpbuf_delete(struct ofpbuf *b) -{ - if (b) { - ofpbuf_uninit(b); - free(b); - } -} - -/* If 'b' contains at least 'offset + size' bytes of data, returns a pointer to - * byte 'offset'. Otherwise, returns a null pointer. */ -static inline void *ofpbuf_at(const struct ofpbuf *b, size_t offset, - size_t size) -{ - return offset + size <= b->size ? (char *) b->data + offset : NULL; -} - -/* Returns a pointer to byte 'offset' in 'b', which must contain at least - * 'offset + size' bytes of data. */ -static inline void *ofpbuf_at_assert(const struct ofpbuf *b, size_t offset, - size_t size) -{ - ovs_assert(offset + size <= b->size); - return ((char *) b->data) + offset; -} - -/* Returns a pointer to byte following the last byte of data in use in 'b'. */ -static inline void *ofpbuf_tail(const struct ofpbuf *b) -{ - return (char *) b->data + b->size; -} - -/* Returns a pointer to byte following the last byte allocated for use (but - * not necessarily in use) in 'b'. */ -static inline void *ofpbuf_end(const struct ofpbuf *b) -{ - return (char *) b->base + b->allocated; -} - -/* Returns the number of bytes of headroom in 'b', that is, the number of bytes - * of unused space in ofpbuf 'b' before the data that is in use. (Most - * commonly, the data in a ofpbuf is at its beginning, and thus the ofpbuf's - * headroom is 0.) */ -static inline size_t ofpbuf_headroom(const struct ofpbuf *b) -{ - return (char*)b->data - (char*)b->base; -} - -/* Returns the number of bytes that may be appended to the tail end of ofpbuf - * 'b' before the ofpbuf must be reallocated. */ -static inline size_t ofpbuf_tailroom(const struct ofpbuf *b) -{ - return (char*)ofpbuf_end(b) - (char*)ofpbuf_tail(b); -} - -/* Returns the number of bytes from 'b->header' to 'b->msg', that is, the - * length of 'b''s header. */ -static inline size_t -ofpbuf_headersize(const struct ofpbuf *b) -{ - return (char *)b->msg - (char *)b->header; -} - -/* Returns the number of bytes from 'b->msg' to 'b->data + b->size', that is, - * the length of the used space in 'b' starting from 'msg'. */ -static inline size_t -ofpbuf_msgsize(const struct ofpbuf *b) -{ - return (char *)ofpbuf_tail(b) - (char *)b->msg; -} - -/* Clears any data from 'b'. */ -static inline void ofpbuf_clear(struct ofpbuf *b) -{ - b->data = b->base; - b->size = 0; -} - -/* Removes 'size' bytes from the head end of 'b', which must contain at least - * 'size' bytes of data. Returns the first byte of data removed. */ -static inline void *ofpbuf_pull(struct ofpbuf *b, size_t size) -{ - void *data = b->data; - b->data = (char*)b->data + size; - b->size = b->size - size; - return data; -} - -/* If 'b' has at least 'size' bytes of data, removes that many bytes from the - * head end of 'b' and returns the first byte removed. Otherwise, returns a - * null pointer without modifying 'b'. */ -static inline void *ofpbuf_try_pull(struct ofpbuf *b, size_t size) -{ - return b->size >= size ? ofpbuf_pull(b, size) : NULL; -} - -static inline struct ofpbuf *ofpbuf_from_list(const struct ovs_list *list) -{ - return CONTAINER_OF(list, struct ofpbuf, list_node); -} - -static inline bool ofpbuf_equal(const struct ofpbuf *a, const struct ofpbuf *b) -{ - return a->size == b->size && - memcmp(a->data, b->data, a->size) == 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ofpbuf.h */ diff --git a/lib/rconn.c b/lib/rconn.c index 8aed96d..daffede 100644 --- a/lib/rconn.c +++ b/lib/rconn.c @@ -23,7 +23,7 @@ #include "coverage.h" #include "ofp-msgs.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "poll-loop.h" #include "sat-math.h" diff --git a/lib/route-table.c b/lib/route-table.c index 9dc2038..a63dae0 100644 --- a/lib/route-table.c +++ b/lib/route-table.c @@ -28,7 +28,7 @@ #include "netlink.h" #include "netlink-notifier.h" #include "netlink-socket.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-router.h" #include "packets.h" #include "rtnetlink.h" diff --git a/lib/rstp-state-machines.c b/lib/rstp-state-machines.c index 9768e46..5643c10 100644 --- a/lib/rstp-state-machines.c +++ b/lib/rstp-state-machines.c @@ -38,7 +38,7 @@ #include <sys/types.h> #include "byte-order.h" #include "connectivity.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "dp-packet.h" #include "packets.h" #include "seq.h" diff --git a/lib/rstp.c b/lib/rstp.c index f24ca01..9e84b27 100644 --- a/lib/rstp.c +++ b/lib/rstp.c @@ -39,7 +39,7 @@ #include <sys/types.h> #include "byte-order.h" #include "connectivity.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto/ofproto.h" #include "dp-packet.h" #include "packets.h" diff --git a/lib/rtnetlink.c b/lib/rtnetlink.c index d0c1ee7..e11d9a2 100644 --- a/lib/rtnetlink.c +++ b/lib/rtnetlink.c @@ -24,7 +24,8 @@ #include "netlink.h" #include "netlink-notifier.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" +#include "packets.h" static struct nln *nln = NULL; static struct rtnetlink_change rtn_change; diff --git a/lib/stp.c b/lib/stp.c index 467b0ba..e6ea571 100644 --- a/lib/stp.c +++ b/lib/stp.c @@ -27,7 +27,7 @@ #include <stdlib.h> #include "byte-order.h" #include "connectivity.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-atomic.h" #include "dp-packet.h" #include "packets.h" diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c index 6ef9803..bf80fc8 100644 --- a/lib/stream-ssl.c +++ b/lib/stream-ssl.c @@ -35,7 +35,7 @@ #include "coverage.h" #include "openvswitch/dynamic-string.h" #include "entropy.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "packets.h" #include "poll-loop.h" diff --git a/lib/stream.c b/lib/stream.c index f6602b2..3fc69c1 100644 --- a/lib/stream.c +++ b/lib/stream.c @@ -28,7 +28,7 @@ #include "flow.h" #include "jsonrpc.h" #include "ofp-print.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/nicira-ext.h" #include "openflow/openflow.h" #include "ovs-thread.h" diff --git a/lib/tnl-ports.c b/lib/tnl-ports.c index 72aa9f2..5414880 100644 --- a/lib/tnl-ports.c +++ b/lib/tnl-ports.c @@ -27,7 +27,7 @@ #include "hash.h" #include "openvswitch/list.h" #include "netdev.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-thread.h" #include "odp-util.h" #include "ovs-thread.h" diff --git a/lib/tun-metadata.h b/lib/tun-metadata.h index 37cf3ce..f52c4fa 100644 --- a/lib/tun-metadata.h +++ b/lib/tun-metadata.h @@ -21,7 +21,7 @@ #include "openvswitch/dynamic-string.h" #include "netlink.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "openvswitch/geneve.h" diff --git a/lib/vconn-stream.c b/lib/vconn-stream.c index 2858462..33f1388 100644 --- a/lib/vconn-stream.c +++ b/lib/vconn-stream.c @@ -22,7 +22,7 @@ #include <sys/types.h> #include <unistd.h> #include "fatal-signal.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "poll-loop.h" #include "socket-util.h" diff --git a/lib/vconn.c b/lib/vconn.c index e634892..50a127f 100644 --- a/lib/vconn.c +++ b/lib/vconn.c @@ -29,7 +29,7 @@ #include "ofp-msgs.h" #include "ofp-print.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/nicira-ext.h" #include "openflow/openflow.h" #include "packets.h" diff --git a/lib/vlog.c b/lib/vlog.c index 4c36f1b..4874e32 100644 --- a/lib/vlog.c +++ b/lib/vlog.c @@ -32,7 +32,7 @@ #include "coverage.h" #include "dirs.h" #include "openvswitch/dynamic-string.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-thread.h" #include "sat-math.h" #include "socket-util.h" diff --git a/ofproto/bond.c b/ofproto/bond.c index 534ed28..8a8ee40 100644 --- a/ofproto/bond.c +++ b/ofproto/bond.c @@ -25,7 +25,7 @@ #include "ofp-util.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto/ofproto-provider.h" #include "ofproto/ofproto-dpif.h" #include "ofproto/ofproto-dpif-rid.h" @@ -38,7 +38,7 @@ #include "openvswitch/list.h" #include "netdev.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "packets.h" #include "dp-packet.h" #include "poll-loop.h" diff --git a/ofproto/bundles.c b/ofproto/bundles.c index 003b20b..720780b 100644 --- a/ofproto/bundles.c +++ b/ofproto/bundles.c @@ -25,7 +25,7 @@ #include "ofp-actions.h" #include "ofp-msgs.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-provider.h" #include "pinsched.h" #include "poll-loop.h" diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c index 07c4f63..ab616d8 100644 --- a/ofproto/connmgr.c +++ b/ofproto/connmgr.c @@ -29,7 +29,7 @@ #include "ofp-actions.h" #include "ofp-msgs.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-provider.h" #include "pinsched.h" #include "poll-loop.h" diff --git a/ofproto/fail-open.c b/ofproto/fail-open.c index a288054..3a41ac5 100644 --- a/ofproto/fail-open.c +++ b/ofproto/fail-open.c @@ -23,7 +23,7 @@ #include "flow.h" #include "mac-learning.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofp-actions.h" #include "ofp-util.h" #include "ofproto.h" diff --git a/ofproto/in-band.c b/ofproto/in-band.c index ea7e315..9c04999 100644 --- a/ofproto/in-band.c +++ b/ofproto/in-band.c @@ -31,7 +31,7 @@ #include "odp-util.h" #include "ofp-actions.h" #include "ofproto.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-provider.h" #include "openflow/openflow.h" #include "packets.h" diff --git a/ofproto/netflow.c b/ofproto/netflow.c index f1b6fbe..55f7814 100644 --- a/ofproto/netflow.c +++ b/ofproto/netflow.c @@ -25,7 +25,7 @@ #include "dpif.h" #include "flow.h" #include "lib/netflow.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto.h" #include "ofproto/netflow.h" #include "packets.h" diff --git a/ofproto/ofproto-dpif-ipfix.c b/ofproto/ofproto-dpif-ipfix.c index 9d605b2..5fdc789 100644 --- a/ofproto/ofproto-dpif-ipfix.c +++ b/ofproto/ofproto-dpif-ipfix.c @@ -23,7 +23,7 @@ #include "hash.h" #include "hmap.h" #include "openvswitch/list.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto.h" #include "ofproto-dpif.h" #include "dp-packet.h" diff --git a/ofproto/ofproto-dpif-monitor.c b/ofproto/ofproto-dpif-monitor.c index 0548400..ace4e73 100644 --- a/ofproto/ofproto-dpif-monitor.c +++ b/ofproto/ofproto-dpif-monitor.c @@ -27,7 +27,7 @@ #include "heap.h" #include "hmap.h" #include "latch.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-dpif.h" #include "ovs-lldp.h" #include "ovs-thread.h" diff --git a/ofproto/ofproto-dpif-rid.c b/ofproto/ofproto-dpif-rid.c index 84c997c..1f03dd4 100644 --- a/ofproto/ofproto-dpif-rid.c +++ b/ofproto/ofproto-dpif-rid.c @@ -16,7 +16,7 @@ #include <config.h> -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-dpif.h" #include "ofproto-dpif-rid.h" #include "ofproto-provider.h" diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c index f11699c..217bc97 100644 --- a/ofproto/ofproto-dpif-sflow.c +++ b/ofproto/ofproto-dpif-sflow.c @@ -29,7 +29,7 @@ #include "hmap.h" #include "netdev.h" #include "netlink.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto.h" #include "packets.h" #include "poll-loop.h" diff --git a/ofproto/ofproto-dpif-upcall.c b/ofproto/ofproto-dpif-upcall.c index 9c64b6b..ab07893 100644 --- a/ofproto/ofproto-dpif-upcall.c +++ b/ofproto/ofproto-dpif-upcall.c @@ -29,7 +29,7 @@ #include "latch.h" #include "openvswitch/list.h" #include "netlink.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-dpif-ipfix.h" #include "ofproto-dpif-sflow.h" #include "ofproto-dpif-xlate.h" diff --git a/ofproto/ofproto-dpif-xlate.h b/ofproto/ofproto-dpif-xlate.h index 640ed4b..cf9932c 100644 --- a/ofproto/ofproto-dpif-xlate.h +++ b/ofproto/ofproto-dpif-xlate.h @@ -19,7 +19,7 @@ #include "flow.h" #include "meta-flow.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-dpif-mirror.h" #include "ofproto-dpif-rid.h" #include "ofproto-dpif.h" diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index ca10098..2660eb7 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -48,7 +48,7 @@ #include "odp-util.h" #include "odp-execute.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofp-actions.h" #include "ofp-print.h" #include "ofproto-dpif-ipfix.h" diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 423f1ad..50b9c75 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -38,7 +38,7 @@ #include "ofp-msgs.h" #include "ofp-print.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto-provider.h" #include "openflow/nicira-ext.h" #include "openflow/openflow.h" diff --git a/ofproto/pinsched.c b/ofproto/pinsched.c index c7118a6..af1d65c 100644 --- a/ofproto/pinsched.c +++ b/ofproto/pinsched.c @@ -24,7 +24,7 @@ #include "flow.h" #include "hash.h" #include "hmap.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "poll-loop.h" #include "random.h" diff --git a/ofproto/tunnel.c b/ofproto/tunnel.c index 551334f..55d76dd 100644 --- a/ofproto/tunnel.c +++ b/ofproto/tunnel.c @@ -27,7 +27,7 @@ #include "hmap.h" #include "netdev.h" #include "odp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "packets.h" #include "route-table.h" #include "seq.h" diff --git a/ovn/controller/lflow.c b/ovn/controller/lflow.c index e60c594..53e2905 100644 --- a/ovn/controller/lflow.c +++ b/ovn/controller/lflow.c @@ -18,7 +18,7 @@ #include "openvswitch/dynamic-string.h" #include "ofctrl.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openvswitch/vlog.h" #include "ovn/controller/ovn-controller.h" #include "ovn/lib/actions.h" diff --git a/ovn/controller/ofctrl.c b/ovn/controller/ofctrl.c index 5f4982f..dd2beaf 100644 --- a/ovn/controller/ofctrl.c +++ b/ovn/controller/ofctrl.c @@ -23,7 +23,7 @@ #include "ofp-msgs.h" #include "ofp-print.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "openvswitch/vlog.h" #include "ovn-controller.h" diff --git a/ovn/controller/physical.c b/ovn/controller/physical.c index 8b12769..168d33c 100644 --- a/ovn/controller/physical.c +++ b/ovn/controller/physical.c @@ -19,7 +19,7 @@ #include "match.h" #include "ofctrl.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovn-controller.h" #include "ovn/lib/ovn-sb-idl.h" #include "openvswitch/vlog.h" diff --git a/ovn/lib/actions.c b/ovn/lib/actions.c index 91cf066..4c087f2 100644 --- a/ovn/lib/actions.c +++ b/ovn/lib/actions.c @@ -24,7 +24,7 @@ #include "lex.h" #include "logical-fields.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "simap.h" /* Context maintained during actions_parse(). */ diff --git a/tests/test-bundle.c b/tests/test-bundle.c index 4f6eb0c..d19c23a 100644 --- a/tests/test-bundle.c +++ b/tests/test-bundle.c @@ -20,7 +20,7 @@ #include <stdlib.h> #include "flow.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "util.h" diff --git a/tests/test-flows.c b/tests/test-flows.c index 0e8b148..89c7ac0 100644 --- a/tests/test-flows.c +++ b/tests/test-flows.c @@ -22,7 +22,7 @@ #include <stdlib.h> #include <string.h> #include "classifier.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofp-print.h" #include "ofp-util.h" #include "openflow/openflow.h" diff --git a/tests/test-list.c b/tests/test-list.c index 7789dac..162ae9a 100644 --- a/tests/test-list.c +++ b/tests/test-list.c @@ -21,6 +21,7 @@ #undef NDEBUG #include "openvswitch/list.h" #include <assert.h> +#include <stdio.h> #include <string.h> #include "ovstest.h" diff --git a/tests/test-netflow.c b/tests/test-netflow.c index fa0920e..6d199ba 100644 --- a/tests/test-netflow.c +++ b/tests/test-netflow.c @@ -25,7 +25,7 @@ #include "command-line.h" #include "daemon.h" #include "openvswitch/dynamic-string.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "packets.h" #include "poll-loop.h" diff --git a/tests/test-odp.c b/tests/test-odp.c index 9a2e520..b1e20c3 100644 --- a/tests/test-odp.c +++ b/tests/test-odp.c @@ -21,7 +21,7 @@ #include "openvswitch/dynamic-string.h" #include "flow.h" #include "match.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "util.h" #include "openvswitch/ofp-parse.h" diff --git a/tests/test-ofpbuf.c b/tests/test-ofpbuf.c index d88fefe..3d7fab9 100644 --- a/tests/test-ofpbuf.c +++ b/tests/test-ofpbuf.c @@ -17,7 +17,7 @@ #include <config.h> #undef NDEBUG #include <stdio.h> -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "util.h" diff --git a/tests/test-ovn.c b/tests/test-ovn.c index bbae84c..a05f8a1 100644 --- a/tests/test-ovn.c +++ b/tests/test-ovn.c @@ -23,7 +23,7 @@ #include "fatal-signal.h" #include "match.h" #include "ofp-actions.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovn/lib/actions.h" #include "ovn/lib/expr.h" #include "ovn/lib/lex.h" diff --git a/tests/test-rstp.c b/tests/test-rstp.c index 3eca15c..2ee8c7e 100644 --- a/tests/test-rstp.c +++ b/tests/test-rstp.c @@ -7,7 +7,7 @@ #include <inttypes.h> #include <stdarg.h> #include <stdlib.h> -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "dp-packet.h" #include "packets.h" diff --git a/tests/test-sflow.c b/tests/test-sflow.c index aa003fd..60870df 100644 --- a/tests/test-sflow.c +++ b/tests/test-sflow.c @@ -28,7 +28,7 @@ #include "command-line.h" #include "daemon.h" #include "openvswitch/dynamic-string.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "packets.h" #include "poll-loop.h" diff --git a/tests/test-stp.c b/tests/test-stp.c index ce3b689..c072108 100644 --- a/tests/test-stp.c +++ b/tests/test-stp.c @@ -24,7 +24,7 @@ #include <stdarg.h> #include <stdlib.h> #include "dp-packet.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovstest.h" #include "packets.h" #include "openvswitch/vlog.h" diff --git a/tests/test-vconn.c b/tests/test-vconn.c index 17f4c1a..2dbffff 100644 --- a/tests/test-vconn.c +++ b/tests/test-vconn.c @@ -27,7 +27,7 @@ #include "fatal-signal.h" #include "ofp-msgs.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "ovstest.h" #include "poll-loop.h" diff --git a/utilities/nlmon.c b/utilities/nlmon.c index 9baa1c2..2e16222 100644 --- a/utilities/nlmon.c +++ b/utilities/nlmon.c @@ -25,7 +25,7 @@ #include <linux/rtnetlink.h> #include "netlink.h" #include "netlink-socket.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "poll-loop.h" #include "timeval.h" #include "util.h" diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c index 1034cca..d107b60 100644 --- a/utilities/ovs-ofctl.c +++ b/utilities/ovs-ofctl.c @@ -44,7 +44,7 @@ #include "ofp-print.h" #include "ofp-util.h" #include "ofp-version-opt.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto/ofproto.h" #include "openflow/nicira-ext.h" #include "openflow/openflow.h" diff --git a/utilities/ovs-testcontroller.c b/utilities/ovs-testcontroller.c index 550c331..3868266 100644 --- a/utilities/ovs-testcontroller.c +++ b/utilities/ovs-testcontroller.c @@ -30,7 +30,7 @@ #include "fatal-signal.h" #include "learning-switch.h" #include "ofp-version-opt.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "openflow/openflow.h" #include "poll-loop.h" #include "rconn.h" diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 968781d..c63c0e4 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -43,7 +43,7 @@ #include "nx-match.h" #include "ofp-print.h" #include "ofp-util.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ofproto/bond.h" #include "ofproto/ofproto.h" #include "ovs-numa.h" diff --git a/vswitchd/system-stats.c b/vswitchd/system-stats.c index e83b659..df4971e 100644 --- a/vswitchd/system-stats.c +++ b/vswitchd/system-stats.c @@ -36,7 +36,7 @@ #include "openvswitch/dynamic-string.h" #include "json.h" #include "latch.h" -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include "ovs-thread.h" #include "poll-loop.h" #include "shash.h" -- 2.5.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev