aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mxge
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2014-03-13 03:42:24 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2014-03-13 03:42:24 +0000
commitb245f96c44c5c3b395480706327250c29f8d19cc (patch)
tree23c54b335bf31cd906e8cf3bad37e838d9a80c2d /sys/dev/mxge
parent3d31c75401c066d17bb3d3baef0a2a7c4ffe7708 (diff)
downloadsrc-b245f96c44c5c3b395480706327250c29f8d19cc.tar.gz
src-b245f96c44c5c3b395480706327250c29f8d19cc.zip
Since 32-bit if_baudrate isn't enough to describe a baud rate of a 10 Gbit
interface, in the r241616 a crutch was provided. It didn't work well, and finally we decided that it is time to break ABI and simply make if_baudrate a 64-bit value. Meanwhile, the entire struct if_data was reviewed. o Remove the if_baudrate_pf crutch. o Make all fields of struct if_data fixed machine independent size. The notion of data (packet counters, etc) are by no means MD. And it is a bug that on amd64 we've got a 64-bit counters, while on i386 32-bit, which at modern speeds overflow within a second. This also removes quite a lot of COMPAT_FREEBSD32 code. o Give 16 bit for the ifi_datalen field. This field was provided to make future changes to if_data less ABI breaking. Unfortunately the 8 bit size of it had effectively limited sizeof if_data to 256 bytes. o Give 32 bits to ifi_mtu and ifi_metric. o Give 64 bits to the rest of fields, since they are counters. __FreeBSD_version bumped. Discussed with: emax Sponsored by: Netflix Sponsored by: Nginx, Inc.
Notes
Notes: svn path=/head/; revision=263102
Diffstat (limited to 'sys/dev/mxge')
-rw-r--r--sys/dev/mxge/if_mxge.c4
-rw-r--r--sys/dev/mxge/if_mxge_var.h6
2 files changed, 2 insertions, 8 deletions
diff --git a/sys/dev/mxge/if_mxge.c b/sys/dev/mxge/if_mxge.c
index 530b01c716ba..e6cdf234407b 100644
--- a/sys/dev/mxge/if_mxge.c
+++ b/sys/dev/mxge/if_mxge.c
@@ -3140,12 +3140,10 @@ mxge_intr(void *arg)
sc->link_state = stats->link_up;
if (sc->link_state) {
if_link_state_change(sc->ifp, LINK_STATE_UP);
- if_initbaudrate(sc->ifp, IF_Gbps(10));
if (mxge_verbose)
device_printf(sc->dev, "link up\n");
} else {
if_link_state_change(sc->ifp, LINK_STATE_DOWN);
- sc->ifp->if_baudrate = 0;
if (mxge_verbose)
device_printf(sc->dev, "link down\n");
}
@@ -4887,7 +4885,7 @@ mxge_attach(device_t dev)
goto abort_with_rings;
}
- if_initbaudrate(ifp, IF_Gbps(10));
+ ifp->if_baudrate = IF_Gbps(10);
ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_TXCSUM | IFCAP_TSO4 |
IFCAP_VLAN_MTU | IFCAP_LINKSTATE | IFCAP_TXCSUM_IPV6 |
IFCAP_RXCSUM_IPV6;
diff --git a/sys/dev/mxge/if_mxge_var.h b/sys/dev/mxge/if_mxge_var.h
index a182a205af8b..a284cdf58625 100644
--- a/sys/dev/mxge/if_mxge_var.h
+++ b/sys/dev/mxge/if_mxge_var.h
@@ -57,12 +57,8 @@ $FreeBSD$
#define IF_Kbps(x) ((uintmax_t)(x) * 1000) /* kilobits/sec. */
#define IF_Mbps(x) (IF_Kbps((x) * 1000)) /* megabits/sec. */
#define IF_Gbps(x) (IF_Mbps((x) * 1000)) /* gigabits/sec. */
-static __inline void
-if_initbaudrate(struct ifnet *ifp, uintmax_t baud)
-{
- ifp->if_baudrate = baud;
-}
#endif
+
#ifndef VLAN_CAPABILITIES
#define VLAN_CAPABILITIES(ifp)
#define mxge_vlans_active(sc) (sc)->ifp->if_nvlans