From patchwork Tue Mar 22 23:17:35 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: 601070 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 3qV7yP4WZvz9sCy for ; Wed, 23 Mar 2016 10:22:21 +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=hCmQ02ye; dkim-atps=neutral Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id CC3DD1052D; Tue, 22 Mar 2016 16:22:20 -0700 (PDT) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx1e3.cudamail.com (mx1.cudamail.com [69.90.118.67]) by archives.nicira.com (Postfix) with ESMTPS id E2F6B1039D for ; Tue, 22 Mar 2016 16:22:19 -0700 (PDT) Received: from bar5.cudamail.com (localhost [127.0.0.1]) by mx1e3.cudamail.com (Postfix) with ESMTPS id 5F718420301 for ; Tue, 22 Mar 2016 17:22:19 -0600 (MDT) X-ASG-Debug-ID: 1458688683-09eadd116903df0001-byXFYA Received: from mx3-pf3.cudamail.com ([192.168.14.3]) by bar5.cudamail.com with ESMTP id AeVKAO35OR2DN5qE (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 22 Mar 2016 17:18:03 -0600 (MDT) X-Barracuda-Envelope-From: ben@skyportsystems.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.14.3 Received: from unknown (HELO mail-pf0-f181.google.com) (209.85.192.181) by mx3-pf3.cudamail.com with ESMTPS (RC4-SHA encrypted); 22 Mar 2016 23:18:02 -0000 Received-SPF: pass (mx3-pf3.cudamail.com: SPF record at _netblocks.google.com designates 209.85.192.181 as permitted sender) X-Barracuda-RBL-Trusted-Forwarder: 209.85.192.181 Received: by mail-pf0-f181.google.com with SMTP id x3so330009052pfb.1 for ; Tue, 22 Mar 2016 16:18:02 -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=iCmouT1oXP93poKGvX/HRILRuJ28kGU6Joa6ndQSU6s=; b=hCmQ02yesuXUUjygkmvwsEjX119MtUpgl0xbflHVbzRUB1CkecJLd6wS3kKMxYInDM lv65UdFhmHulOy/Rys16NOh9f3/ExJrasGMqiQo3RFaOh+KyPzVinIDX0OgVxFWQbIN0 sej/Ti9sf3yX6Cygx3xVOLv5S7kn64qsay3qc= 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=iCmouT1oXP93poKGvX/HRILRuJ28kGU6Joa6ndQSU6s=; b=fB8CuviPu0QS7cqEgY1Jas05UjLL0n2KgkLmfbSOcLLQ4sPbsL9etkg43ABAHNRV/O DU3x47dj3HYsbQDBb2tP9kkMzwakL+VB134LqkKHPEZFPNQ5AXDct9eUvRdaof+Y/S4H HnUJme9pD8AicGXT0VhpV+g97PkmgqN0Ggx7pyU9A7Zl5ln3I8kY+vn5mWRxgOZWRV8d MAcS0xJ405beVM5ZG1/diA3SJVa2ae2IZ3Fs9feq1Cj7kHC3c0hT/4yKOuxxZ1D2E2sD cCRsYqMrkvT+IUn8XhD/OsXxfsCt/g9YlDylFR96cczG6RqsrKrCb8yNrPCn4S7K5XAu AB5w== X-Gm-Message-State: AD7BkJImF6RQheKLhiaK++o8WjqgNzTPgWW8y4chIgtuENBynJJ/V86/NmMi4yv02JErPphh X-Received: by 10.66.234.104 with SMTP id ud8mr58227477pac.143.1458688682507; Tue, 22 Mar 2016 16:18:02 -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 9sm50729385pft.44.2016.03.22.16.18.01 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 22 Mar 2016 16:18:01 -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-V3-321068379 X-CudaMail-DTE: 032216 X-CudaMail-Originating-IP: 209.85.192.181 Date: Tue, 22 Mar 2016 16:17:35 -0700 X-ASG-Orig-Subj: [##CM-V3-321068379##][PATCH v4 04/22] Move ofp-parse.h to include/openvswitch directory Message-Id: <1987e8d423b84c361e0a868e2810aa7afcd146b8.1458688105.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.181, Ugly c=0.44763 p=-0.376623 Source Normal X-MessageSniffer-Rules: 0-0-0-32091-c X-Barracuda-Connect: UNKNOWN[192.168.14.3] X-Barracuda-Start-Time: 1458688683 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: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=4.0 tests=BSF_SC5_MJ1963, DKIM_SIGNED, NO_REAL_NAME, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.28069 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.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 v4 04/22] Move ofp-parse.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 --- include/openvswitch/automake.mk | 1 + include/openvswitch/ofp-parse.h | 106 ++++++++++++++++++++++++++++++++++++++++ lib/automake.mk | 1 - lib/dpctl.c | 2 +- lib/learning-switch.c | 2 +- lib/ofp-actions.c | 2 +- lib/ofp-parse.c | 3 +- lib/ofp-parse.h | 106 ---------------------------------------- ofproto/ofproto-dpif.c | 2 +- tests/test-odp.c | 2 +- utilities/ovs-dpctl.c | 2 +- utilities/ovs-ofctl.c | 2 +- utilities/ovs-testcontroller.c | 2 +- 13 files changed, 116 insertions(+), 117 deletions(-) create mode 100644 include/openvswitch/ofp-parse.h delete mode 100644 lib/ofp-parse.h diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk index 08dc889..a6343d2 100644 --- a/include/openvswitch/automake.mk +++ b/include/openvswitch/automake.mk @@ -5,6 +5,7 @@ openvswitchinclude_HEADERS = \ include/openvswitch/geneve.h \ include/openvswitch/list.h \ include/openvswitch/ofp-errors.h \ + include/openvswitch/ofp-parse.h \ include/openvswitch/thread.h \ include/openvswitch/token-bucket.h \ include/openvswitch/types.h \ diff --git a/include/openvswitch/ofp-parse.h b/include/openvswitch/ofp-parse.h new file mode 100644 index 0000000..1ab5095 --- /dev/null +++ b/include/openvswitch/ofp-parse.h @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2010, 2011, 2012, 2013, 2014, 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. + */ + +/* OpenFlow protocol string to flow parser. */ + +#ifndef OPENVSWITCH_OFP_PARSE_H +#define OPENVSWITCH_OFP_PARSE_H 1 + +#include +#include +#include +#include "openvswitch/compiler.h" +#include "openvswitch/types.h" + +struct flow; +struct ofpbuf; +struct ofputil_flow_mod; +struct ofputil_flow_monitor_request; +struct ofputil_flow_stats_request; +struct ofputil_group_mod; +struct ofputil_meter_mod; +struct ofputil_table_mod; +struct ofputil_tlv_table_mod; +struct simap; +enum ofputil_protocol; + +char *parse_ofp_str(struct ofputil_flow_mod *, int command, const char *str_, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_flow_mod_str(struct ofputil_flow_mod *, const char *string, + int command, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_table_mod(struct ofputil_table_mod *, + const char *table_id, const char *flow_miss_handling, + uint32_t *usable_versions) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_flow_mod_file(const char *file_name, int command, + struct ofputil_flow_mod **fms, size_t *n_fms, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_flow_stats_request_str(struct ofputil_flow_stats_request *, + bool aggregate, const char *string, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_exact_flow(struct flow *flow, struct flow *mask, const char *s, + const struct simap *portno_names); + +char *parse_ofp_meter_mod_str(struct ofputil_meter_mod *, const char *string, + int command, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_flow_monitor_request(struct ofputil_flow_monitor_request *, + const char *, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_group_mod_file(const char *file_name, uint16_t command, + struct ofputil_group_mod **gms, size_t *n_gms, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_group_mod_str(struct ofputil_group_mod *, uint16_t command, + const char *string, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *parse_ofp_tlv_table_mod_str(struct ofputil_tlv_table_mod *, + uint16_t command, const char *string, + enum ofputil_protocol *usable_protocols) + OVS_WARN_UNUSED_RESULT; + +char *str_to_u8(const char *str, const char *name, uint8_t *valuep) + OVS_WARN_UNUSED_RESULT; +char *str_to_u16(const char *str, const char *name, uint16_t *valuep) + OVS_WARN_UNUSED_RESULT; +char *str_to_u32(const char *str, uint32_t *valuep) OVS_WARN_UNUSED_RESULT; +char *str_to_u64(const char *str, uint64_t *valuep) OVS_WARN_UNUSED_RESULT; +char *str_to_be64(const char *str, ovs_be64 *valuep) OVS_WARN_UNUSED_RESULT; +char *str_to_mac(const char *str, struct eth_addr *mac) OVS_WARN_UNUSED_RESULT; +char *str_to_ip(const char *str, ovs_be32 *ip) OVS_WARN_UNUSED_RESULT; +char *str_to_connhelper(const char *str, uint16_t *alg) OVS_WARN_UNUSED_RESULT; +char *parse_ofp_table_vacancy(struct ofputil_table_mod *, + const char *flow_miss_handling) + OVS_WARN_UNUSED_RESULT; + +#endif /* ofp-parse.h */ diff --git a/lib/automake.mk b/lib/automake.mk index 3eae15b..a1d3697 100644 --- a/lib/automake.mk +++ b/lib/automake.mk @@ -145,7 +145,6 @@ lib_libopenvswitch_la_SOURCES = \ lib/ofp-msgs.c \ lib/ofp-msgs.h \ lib/ofp-parse.c \ - lib/ofp-parse.h \ lib/ofp-print.c \ lib/ofp-print.h \ lib/ofp-prop.c \ diff --git a/lib/dpctl.c b/lib/dpctl.c index 854190f..6f45078 100644 --- a/lib/dpctl.c +++ b/lib/dpctl.c @@ -39,7 +39,6 @@ #include "netdev-dpdk.h" #include "netlink.h" #include "odp-util.h" -#include "ofp-parse.h" #include "ofpbuf.h" #include "ovs-numa.h" #include "packets.h" @@ -50,6 +49,7 @@ #include "timeval.h" #include "unixctl.h" #include "util.h" +#include "openvswitch/ofp-parse.h" typedef int dpctl_command_handler(int argc, const char *argv[], struct dpctl_params *); diff --git a/lib/learning-switch.c b/lib/learning-switch.c index d9e284d..3b23a87 100644 --- a/lib/learning-switch.c +++ b/lib/learning-switch.c @@ -32,7 +32,6 @@ #include "ofpbuf.h" #include "ofp-actions.h" #include "ofp-msgs.h" -#include "ofp-parse.h" #include "ofp-print.h" #include "ofp-util.h" #include "openflow/openflow.h" @@ -42,6 +41,7 @@ #include "simap.h" #include "timeval.h" #include "openvswitch/ofp-errors.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vconn.h" #include "openvswitch/vlog.h" diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index 0438c62..745f459 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -30,12 +30,12 @@ #include "multipath.h" #include "nx-match.h" #include "odp-netlink.h" -#include "ofp-parse.h" #include "ofp-prop.h" #include "ofp-util.h" #include "ofpbuf.h" #include "unaligned.h" #include "util.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vlog.h" VLOG_DEFINE_THIS_MODULE(ofp_actions); diff --git a/lib/ofp-parse.c b/lib/ofp-parse.c index 9b6db3a..e938ba1 100644 --- a/lib/ofp-parse.c +++ b/lib/ofp-parse.c @@ -16,8 +16,6 @@ #include -#include "ofp-parse.h" - #include #include #include @@ -38,6 +36,7 @@ #include "packets.h" #include "simap.h" #include "socket-util.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vconn.h" /* Parses 'str' as an 8-bit unsigned integer into '*valuep'. diff --git a/lib/ofp-parse.h b/lib/ofp-parse.h deleted file mode 100644 index e1ebee7..0000000 --- a/lib/ofp-parse.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012, 2013, 2014, 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. - */ - -/* OpenFlow protocol string to flow parser. */ - -#ifndef OFP_PARSE_H -#define OFP_PARSE_H 1 - -#include -#include -#include -#include "compiler.h" -#include "openvswitch/types.h" - -struct flow; -struct ofpbuf; -struct ofputil_flow_mod; -struct ofputil_flow_monitor_request; -struct ofputil_flow_stats_request; -struct ofputil_group_mod; -struct ofputil_meter_mod; -struct ofputil_table_mod; -struct ofputil_tlv_table_mod; -struct simap; -enum ofputil_protocol; - -char *parse_ofp_str(struct ofputil_flow_mod *, int command, const char *str_, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_flow_mod_str(struct ofputil_flow_mod *, const char *string, - int command, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_table_mod(struct ofputil_table_mod *, - const char *table_id, const char *flow_miss_handling, - uint32_t *usable_versions) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_flow_mod_file(const char *file_name, int command, - struct ofputil_flow_mod **fms, size_t *n_fms, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_flow_stats_request_str(struct ofputil_flow_stats_request *, - bool aggregate, const char *string, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_exact_flow(struct flow *flow, struct flow *mask, const char *s, - const struct simap *portno_names); - -char *parse_ofp_meter_mod_str(struct ofputil_meter_mod *, const char *string, - int command, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_flow_monitor_request(struct ofputil_flow_monitor_request *, - const char *, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_group_mod_file(const char *file_name, uint16_t command, - struct ofputil_group_mod **gms, size_t *n_gms, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_group_mod_str(struct ofputil_group_mod *, uint16_t command, - const char *string, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *parse_ofp_tlv_table_mod_str(struct ofputil_tlv_table_mod *, - uint16_t command, const char *string, - enum ofputil_protocol *usable_protocols) - OVS_WARN_UNUSED_RESULT; - -char *str_to_u8(const char *str, const char *name, uint8_t *valuep) - OVS_WARN_UNUSED_RESULT; -char *str_to_u16(const char *str, const char *name, uint16_t *valuep) - OVS_WARN_UNUSED_RESULT; -char *str_to_u32(const char *str, uint32_t *valuep) OVS_WARN_UNUSED_RESULT; -char *str_to_u64(const char *str, uint64_t *valuep) OVS_WARN_UNUSED_RESULT; -char *str_to_be64(const char *str, ovs_be64 *valuep) OVS_WARN_UNUSED_RESULT; -char *str_to_mac(const char *str, struct eth_addr *mac) OVS_WARN_UNUSED_RESULT; -char *str_to_ip(const char *str, ovs_be32 *ip) OVS_WARN_UNUSED_RESULT; -char *str_to_connhelper(const char *str, uint16_t *alg) OVS_WARN_UNUSED_RESULT; -char *parse_ofp_table_vacancy(struct ofputil_table_mod *, - const char *flow_miss_handling) - OVS_WARN_UNUSED_RESULT; - -#endif /* ofp-parse.h */ diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c index 65e34d9..ad0a550 100644 --- a/ofproto/ofproto-dpif.c +++ b/ofproto/ofproto-dpif.c @@ -50,7 +50,6 @@ #include "ofp-util.h" #include "ofpbuf.h" #include "ofp-actions.h" -#include "ofp-parse.h" #include "ofp-print.h" #include "ofproto-dpif-ipfix.h" #include "ofproto-dpif-mirror.h" @@ -70,6 +69,7 @@ #include "unaligned.h" #include "unixctl.h" #include "vlan-bitmap.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vlog.h" VLOG_DEFINE_THIS_MODULE(ofproto_dpif); diff --git a/tests/test-odp.c b/tests/test-odp.c index c1ea00a..9a2e520 100644 --- a/tests/test-odp.c +++ b/tests/test-odp.c @@ -21,10 +21,10 @@ #include "openvswitch/dynamic-string.h" #include "flow.h" #include "match.h" -#include "ofp-parse.h" #include "ofpbuf.h" #include "ovstest.h" #include "util.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vlog.h" static int diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c index 89a5a60..ba7fb8e 100644 --- a/utilities/ovs-dpctl.c +++ b/utilities/ovs-dpctl.c @@ -36,10 +36,10 @@ #include "dpctl.h" #include "fatal-signal.h" #include "odp-util.h" -#include "ofp-parse.h" #include "packets.h" #include "timeval.h" #include "util.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vlog.h" static struct dpctl_params dpctl_p; diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c index bd6d848..ff8cb99 100644 --- a/utilities/ovs-ofctl.c +++ b/utilities/ovs-ofctl.c @@ -42,7 +42,6 @@ #include "odp-util.h" #include "ofp-actions.h" #include "ofp-msgs.h" -#include "ofp-parse.h" #include "ofp-print.h" #include "ofp-util.h" #include "ofp-version-opt.h" @@ -61,6 +60,7 @@ #include "unixctl.h" #include "util.h" #include "openvswitch/ofp-errors.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vconn.h" #include "openvswitch/vlog.h" #include "meta-flow.h" diff --git a/utilities/ovs-testcontroller.c b/utilities/ovs-testcontroller.c index 60cc32f..550c331 100644 --- a/utilities/ovs-testcontroller.c +++ b/utilities/ovs-testcontroller.c @@ -29,7 +29,6 @@ #include "daemon.h" #include "fatal-signal.h" #include "learning-switch.h" -#include "ofp-parse.h" #include "ofp-version-opt.h" #include "ofpbuf.h" #include "openflow/openflow.h" @@ -40,6 +39,7 @@ #include "timeval.h" #include "unixctl.h" #include "util.h" +#include "openvswitch/ofp-parse.h" #include "openvswitch/vconn.h" #include "openvswitch/vlog.h" #include "socket-util.h"