From: Ben Warren Date: Tue, 5 Apr 2016 01:32:05 +0000 (-0400) Subject: Break netdev.h into private and public parts X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=b129cc9834a789411095559aa65ec3b2dcad754d;p=cascardo%2Fovs.git Break netdev.h into private and public parts Public (struct definitions and some prototypes) go in include/openvswitch Signed-off-by: Ben Warren Signed-off-by: Ben Pfaff --- diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk index 4339ff749..6d93b26ed 100644 --- a/include/openvswitch/automake.mk +++ b/include/openvswitch/automake.mk @@ -5,6 +5,7 @@ openvswitchinclude_HEADERS = \ include/openvswitch/flow.h \ include/openvswitch/geneve.h \ include/openvswitch/list.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 000000000..fa5e8f289 --- /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 +#include +#include + +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 05968b237..6dabc923a 100644 --- a/lib/netdev.h +++ b/lib/netdev.h @@ -17,9 +17,7 @@ #ifndef NETDEV_H #define NETDEV_H 1 -#include -#include -#include +#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? */