From patchwork Mon Mar 21 18:58:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ben@skyportsystems.com X-Patchwork-Id: 600268 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (archives.nicira.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id 3qTQ9R4Pp1z9ryW for ; Tue, 22 Mar 2016 05:59:23 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=skyportsystems.com header.i=@skyportsystems.com header.b=vWJMop26; dkim-atps=neutral Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id 4317C10395; Mon, 21 Mar 2016 11:58:51 -0700 (PDT) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e4.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id CC72D102F9 for ; Mon, 21 Mar 2016 11:58:48 -0700 (PDT) Received: from bar5.cudamail.com (unknown [192.168.21.12]) by mx1e4.cudamail.com (Postfix) with ESMTPS id 438FE1E0489 for ; Mon, 21 Mar 2016 12:58:48 -0600 (MDT) X-ASG-Debug-ID: 1458586726-09eadd305f94a870001-byXFYA Received: from mx1-pf2.cudamail.com ([192.168.24.2]) by bar5.cudamail.com with ESMTP id KIoNPWuf1LyUOXtn (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 21 Mar 2016 12:58:46 -0600 (MDT) X-Barracuda-Envelope-From: ben@skyportsystems.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.24.2 Received: from unknown (HELO mail-pf0-f182.google.com) (209.85.192.182) by mx1-pf2.cudamail.com with ESMTPS (RC4-SHA encrypted); 21 Mar 2016 18:58:46 -0000 Received-SPF: pass (mx1-pf2.cudamail.com: SPF record at _netblocks.google.com designates 209.85.192.182 as permitted sender) X-Barracuda-RBL-Trusted-Forwarder: 209.85.192.182 Received: by mail-pf0-f182.google.com with SMTP id n5so275139005pfn.2 for ; Mon, 21 Mar 2016 11:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skyportsystems.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=rbvUtD8jdowrpEnMET79ABvRwt9aBUWcplNo36sYECo=; b=vWJMop2682MwdHZ1sz90TXDynM9sy6k4meG+nUMkP84fm2kipGhcsSaK5W4ZEEy2Pq CKbZWV7uc+mOyQYFvGcMoPZN8yakiFv7YmmfojKPZMi8dpUhWR0VYfMn20Zz34bfoAbj huv48RhXxW8EhEsQZjCyH4dqTy8J3OcV32vk8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=rbvUtD8jdowrpEnMET79ABvRwt9aBUWcplNo36sYECo=; b=Z+G/0hXfGO8p9sFieRQzra9AJEHxYm32AlMFGKumpjvdYlhYneLqNU/MOB/zF97wyU 91JEmbLrG0+7Qu5biQlYVow7YXhg3RtUpG0pA/1esjt+MbhqNPcfBl4BBqxNllBBERIA SAp/qft+5CdIi6fsxrba7mrwpwJ12mleDvU8JngTeSCOyNK6vuiEi1EMDGtiMNXHX1Xx ULPQAkuaOHi+C98flsqj+csbeVl4tP5X2nhsBJ51SQlde2fVY46886ccvqLDJWd55WlL ZPHReTSFP+vu3w+oUrcwThvNC1hG62IRzAZrN+5y7SCAR2iZYiQd4vNfZqhu4XGDo6g8 clEQ== X-Gm-Message-State: AD7BkJJUSLjMecX0MbAi0Bicfsk6uab02gfWEF9uYbf78xaylhf7lPTqJWAekf1tB+M0RiM5 X-Received: by 10.66.190.168 with SMTP id gr8mr47630205pac.23.1458586725270; Mon, 21 Mar 2016 11:58:45 -0700 (PDT) Received: from Arrow.corp.skyportsystems.com (67-207-112-138.static.wiline.com. [67.207.112.138]) by smtp.gmail.com with ESMTPSA id a22sm42472831pfj.2.2016.03.21.11.58.44 (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 21 Mar 2016 11:58:44 -0700 (PDT) X-CudaMail-Envelope-Sender: ben@skyportsystems.com X-Barracuda-Apparent-Source-IP: 67.207.112.138 From: ben@skyportsystems.com To: dev@openvswitch.org X-CudaMail-MID: CM-E2-320059246 X-CudaMail-DTE: 032116 X-CudaMail-Originating-IP: 209.85.192.182 Date: Mon, 21 Mar 2016 11:58:13 -0700 X-ASG-Orig-Subj: [##CM-E2-320059246##][PATCH v3 05/21] Move lib/ofpbuf.h to include/openvswitch directory Message-Id: <91be92ae4d4425b48c32cd3ad99b1398efeabf05.1458586229.git.ben@skyportsystems.com> X-Mailer: git-send-email 2.5.4 (Apple Git-61) In-Reply-To: References: In-Reply-To: References: X-GBUdb-Analysis: 0, 209.85.192.182, Ugly c=0.420191 p=-0.457627 Source Normal X-MessageSniffer-Rules: 0-0-0-32767-c X-Barracuda-Connect: UNKNOWN[192.168.24.2] X-Barracuda-Start-Time: 1458586726 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.10 X-Barracuda-Spam-Status: No, SCORE=1.10 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=4.0 tests=BSF_RULE7568M, BSF_SC5_MJ1963, DKIM_SIGNED, NO_REAL_NAME, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.28027 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 BSF_RULE7568M Custom Rule 7568M 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 Cc: Ben Warren Subject: [ovs-dev] [PATCH v3 05/21] Move lib/ofpbuf.h to include/openvswitch directory X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dev-bounces@openvswitch.org Sender: "dev" From: Ben Warren Signed-off-by: Ben Warren Acked-by: Ryan Moats --- 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..bc25bb8 --- /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 +#include +#include +#include +#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 body. + * 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 a1d3697..7b829d0 100644 --- a/lib/automake.mk +++ b/lib/automake.mk @@ -154,7 +154,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 69249e6..0ff1aea 100644 --- a/lib/bundle.c +++ b/lib/bundle.c @@ -25,7 +25,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 f25c32c..119dc2d 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 c1e50ad..1112b4a 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 fe67351..effb827 100644 --- a/lib/learn.c +++ b/lib/learn.c @@ -26,7 +26,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 a5a6e2b..fd45724 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 05e54bd..1738696 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 ab91632..c21ffe7 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 4db5e3c..c2b4f7b 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 88e986c..cad9490 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 #include #include -#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 6b02eb1..a00fd36 100644 --- a/lib/nx-match.c +++ b/lib/nx-match.c @@ -27,7 +27,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 b53de4e..b4689cc 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 745f459..eed0ec2 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -32,7 +32,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 9f623c0..0cfea4f 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 e938ba1..13f6bd6 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 fe55cbc..69050cf 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -38,7 +38,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 7729138..71d1bef 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 22ebce6..3019c4a 100644 --- a/lib/ofpbuf.c +++ b/lib/ofpbuf.c @@ -15,7 +15,7 @@ */ #include -#include "ofpbuf.h" +#include "openvswitch/ofpbuf.h" #include #include #include "openvswitch/dynamic-string.h" diff --git a/lib/ofpbuf.h b/lib/ofpbuf.h deleted file mode 100644 index 7a67d6f..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 -#include -#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 body. - * 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 bfed745..6de4c63 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 #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 280bc6c..907a907 100644 --- a/lib/rstp.c +++ b/lib/rstp.c @@ -39,7 +39,7 @@ #include #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 d12467e..3ee6573 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 ba09965..0f92ed1 100644 --- a/lib/stp.c +++ b/lib/stp.c @@ -27,7 +27,7 @@ #include #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 707ae4a..91410a5 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 #include #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 6babdca..30b5bc2 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 f3bc656..836f00f 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 85ea79f..e31cf03 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 326d10e..a7f40a2 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 4607fc3..46d0bb1 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 67027c1..b3f64f9 100644 --- a/ofproto/ofproto-dpif-rid.c +++ b/ofproto/ofproto-dpif-rid.c @@ -16,7 +16,7 @@ #include -#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 55e6b4c..2612b7d 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 ad0a550..499a582 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 82559d2..6e74e5e 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 469ba23..4b2dfd8 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 0614a54..33ff2f1 100644 --- a/ovn/controller/lflow.c +++ b/ovn/controller/lflow.c @@ -19,7 +19,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.h" #include "ovn/lib/actions.h" diff --git a/ovn/controller/ofctrl.c b/ovn/controller/ofctrl.c index a1e5d50..55ca98d 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 657c3e2..b699664 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 6f67b93..44957c7 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 #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 #include #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 761f634..d413f30 100644 --- a/tests/test-list.c +++ b/tests/test-list.c @@ -21,6 +21,7 @@ #undef NDEBUG #include "openvswitch/list.h" #include +#include #include #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 #undef NDEBUG #include -#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 19a19ed..9290692 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 #include #include -#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 #include #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 #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 ff8cb99..6fbf361 100644 --- a/utilities/ovs-ofctl.c +++ b/utilities/ovs-ofctl.c @@ -45,7 +45,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 960fd34..25d9a87 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"