[ovs-dev] [PATCH v4 17/22] Break netdev.h into private and public parts
ben at skyportsystems.com
ben at skyportsystems.com
Tue Mar 22 23:17:48 UTC 2016
From: Ben Warren <ben at skyportsystems.com>
Public (struct definitions and some prototypes) go in
include/openvswitch
Signed-off-by: Ben Warren <ben at skyportsystems.com>
---
include/openvswitch/automake.mk | 1 +
include/openvswitch/netdev.h | 87 +++++++++++++++++++++++++++++++++++++++++
lib/netdev.h | 66 +------------------------------
3 files changed, 89 insertions(+), 65 deletions(-)
create mode 100644 include/openvswitch/netdev.h
diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk
index 17beb2d..86c836c 100644
--- a/include/openvswitch/automake.mk
+++ b/include/openvswitch/automake.mk
@@ -7,6 +7,7 @@ openvswitchinclude_HEADERS = \
include/openvswitch/list.h \
include/openvswitch/match.h \
include/openvswitch/meta-flow.h \
+ include/openvswitch/netdev.h \
include/openvswitch/ofpbuf.h \
include/openvswitch/ofp-errors.h \
include/openvswitch/ofp-parse.h \
diff --git a/include/openvswitch/netdev.h b/include/openvswitch/netdev.h
new file mode 100644
index 0000000..fa5e8f2
--- /dev/null
+++ b/include/openvswitch/netdev.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 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_NETDEV_H
+#define OPENVSWITCH_NETDEV_H 1
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+
+struct netdev;
+
+/* Network device statistics.
+ *
+ * Values of unsupported statistics are set to all-1-bits (UINT64_MAX). */
+struct netdev_stats {
+ uint64_t rx_packets; /* Total packets received. */
+ uint64_t tx_packets; /* Total packets transmitted. */
+ uint64_t rx_bytes; /* Total bytes received. */
+ uint64_t tx_bytes; /* Total bytes transmitted. */
+ uint64_t rx_errors; /* Bad packets received. */
+ uint64_t tx_errors; /* Packet transmit problems. */
+ uint64_t rx_dropped; /* No buffer space. */
+ uint64_t tx_dropped; /* No buffer space. */
+ uint64_t multicast; /* Multicast packets received. */
+ uint64_t collisions;
+
+ /* Detailed receive errors. */
+ uint64_t rx_length_errors;
+ uint64_t rx_over_errors; /* Receiver ring buff overflow. */
+ uint64_t rx_crc_errors; /* Recved pkt with crc error. */
+ uint64_t rx_frame_errors; /* Recv'd frame alignment error. */
+ uint64_t rx_fifo_errors; /* Recv'r fifo overrun . */
+ uint64_t rx_missed_errors; /* Receiver missed packet. */
+
+ /* Detailed transmit errors. */
+ uint64_t tx_aborted_errors;
+ uint64_t tx_carrier_errors;
+ uint64_t tx_fifo_errors;
+ uint64_t tx_heartbeat_errors;
+ uint64_t tx_window_errors;
+};
+
+/* Features. */
+enum netdev_features {
+ NETDEV_F_10MB_HD = 1 << 0, /* 10 Mb half-duplex rate support. */
+ NETDEV_F_10MB_FD = 1 << 1, /* 10 Mb full-duplex rate support. */
+ NETDEV_F_100MB_HD = 1 << 2, /* 100 Mb half-duplex rate support. */
+ NETDEV_F_100MB_FD = 1 << 3, /* 100 Mb full-duplex rate support. */
+ NETDEV_F_1GB_HD = 1 << 4, /* 1 Gb half-duplex rate support. */
+ NETDEV_F_1GB_FD = 1 << 5, /* 1 Gb full-duplex rate support. */
+ NETDEV_F_10GB_FD = 1 << 6, /* 10 Gb full-duplex rate support. */
+ NETDEV_F_40GB_FD = 1 << 7, /* 40 Gb full-duplex rate support. */
+ NETDEV_F_100GB_FD = 1 << 8, /* 100 Gb full-duplex rate support. */
+ NETDEV_F_1TB_FD = 1 << 9, /* 1 Tb full-duplex rate support. */
+ NETDEV_F_OTHER = 1 << 10, /* Other rate, not in the list. */
+ NETDEV_F_COPPER = 1 << 11, /* Copper medium. */
+ NETDEV_F_FIBER = 1 << 12, /* Fiber medium. */
+ NETDEV_F_AUTONEG = 1 << 13, /* Auto-negotiation. */
+ NETDEV_F_PAUSE = 1 << 14, /* Pause. */
+ NETDEV_F_PAUSE_ASYM = 1 << 15, /* Asymmetric pause. */
+};
+
+int netdev_get_features(const struct netdev *,
+ enum netdev_features *current,
+ enum netdev_features *advertised,
+ enum netdev_features *supported,
+ enum netdev_features *peer);
+uint64_t netdev_features_to_bps(enum netdev_features features,
+ uint64_t default_bps);
+bool netdev_features_is_full_duplex(enum netdev_features features);
+int netdev_set_advertisements(struct netdev *, enum netdev_features advertise);
+
+#endif /* netdev.h */
diff --git a/lib/netdev.h b/lib/netdev.h
index a81989e..63fb394 100644
--- a/lib/netdev.h
+++ b/lib/netdev.h
@@ -17,9 +17,7 @@
#ifndef NETDEV_H
#define NETDEV_H 1
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdint.h>
+#include "openvswitch/netdev.h"
#include "openvswitch/types.h"
#include "packets.h"
#include "flow.h"
@@ -62,7 +60,6 @@ extern "C" {
*/
struct dp_packet;
-struct netdev;
struct netdev_class;
struct netdev_rxq;
struct netdev_saved_flags;
@@ -73,37 +70,6 @@ struct smap;
struct sset;
struct ovs_action_push_tnl;
-/* Network device statistics.
- *
- * Values of unsupported statistics are set to all-1-bits (UINT64_MAX). */
-struct netdev_stats {
- uint64_t rx_packets; /* Total packets received. */
- uint64_t tx_packets; /* Total packets transmitted. */
- uint64_t rx_bytes; /* Total bytes received. */
- uint64_t tx_bytes; /* Total bytes transmitted. */
- uint64_t rx_errors; /* Bad packets received. */
- uint64_t tx_errors; /* Packet transmit problems. */
- uint64_t rx_dropped; /* No buffer space. */
- uint64_t tx_dropped; /* No buffer space. */
- uint64_t multicast; /* Multicast packets received. */
- uint64_t collisions;
-
- /* Detailed receive errors. */
- uint64_t rx_length_errors;
- uint64_t rx_over_errors; /* Receiver ring buff overflow. */
- uint64_t rx_crc_errors; /* Recved pkt with crc error. */
- uint64_t rx_frame_errors; /* Recv'd frame alignment error. */
- uint64_t rx_fifo_errors; /* Recv'r fifo overrun . */
- uint64_t rx_missed_errors; /* Receiver missed packet. */
-
- /* Detailed transmit errors. */
- uint64_t tx_aborted_errors;
- uint64_t tx_carrier_errors;
- uint64_t tx_fifo_errors;
- uint64_t tx_heartbeat_errors;
- uint64_t tx_window_errors;
-};
-
/* Configuration specific to tunnels. */
struct netdev_tunnel_config {
bool in_key_present;
@@ -204,36 +170,6 @@ bool netdev_get_carrier(const struct netdev *);
long long int netdev_get_carrier_resets(const struct netdev *);
int netdev_set_miimon_interval(struct netdev *, long long int interval);
-/* Features. */
-enum netdev_features {
- NETDEV_F_10MB_HD = 1 << 0, /* 10 Mb half-duplex rate support. */
- NETDEV_F_10MB_FD = 1 << 1, /* 10 Mb full-duplex rate support. */
- NETDEV_F_100MB_HD = 1 << 2, /* 100 Mb half-duplex rate support. */
- NETDEV_F_100MB_FD = 1 << 3, /* 100 Mb full-duplex rate support. */
- NETDEV_F_1GB_HD = 1 << 4, /* 1 Gb half-duplex rate support. */
- NETDEV_F_1GB_FD = 1 << 5, /* 1 Gb full-duplex rate support. */
- NETDEV_F_10GB_FD = 1 << 6, /* 10 Gb full-duplex rate support. */
- NETDEV_F_40GB_FD = 1 << 7, /* 40 Gb full-duplex rate support. */
- NETDEV_F_100GB_FD = 1 << 8, /* 100 Gb full-duplex rate support. */
- NETDEV_F_1TB_FD = 1 << 9, /* 1 Tb full-duplex rate support. */
- NETDEV_F_OTHER = 1 << 10, /* Other rate, not in the list. */
- NETDEV_F_COPPER = 1 << 11, /* Copper medium. */
- NETDEV_F_FIBER = 1 << 12, /* Fiber medium. */
- NETDEV_F_AUTONEG = 1 << 13, /* Auto-negotiation. */
- NETDEV_F_PAUSE = 1 << 14, /* Pause. */
- NETDEV_F_PAUSE_ASYM = 1 << 15, /* Asymmetric pause. */
-};
-
-int netdev_get_features(const struct netdev *,
- enum netdev_features *current,
- enum netdev_features *advertised,
- enum netdev_features *supported,
- enum netdev_features *peer);
-uint64_t netdev_features_to_bps(enum netdev_features features,
- uint64_t default_bps);
-bool netdev_features_is_full_duplex(enum netdev_features features);
-int netdev_set_advertisements(struct netdev *, enum netdev_features advertise);
-
/* Flags. */
enum netdev_flags {
NETDEV_UP = 0x0001, /* Device enabled? */
--
2.5.0
More information about the dev
mailing list