Skip to content

Commit fc0d9df

Browse files
committed
MFC r350685:
Add cdceem(4) driver, for virtual ethernet devices compliant with Communication Device Class Ethernet Emulation Model (CDC EEM). The driver supports both the device, and host side operation; there is a new USB template (#11) for the former. This enables communication with virtual USB NIC provided by iLO 5, as found in new HPE Proliant servers. Reviewed by: hselasky Relnotes: yes Sponsored by: Hewlett Packard Enterprise
1 parent 445cfaa commit fc0d9df

File tree

16 files changed

+1285
-6
lines changed

16 files changed

+1285
-6
lines changed

share/man/man4/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ MAN= aac.4 \
109109
ccr.4 \
110110
cd.4 \
111111
cdce.4 \
112+
cdceem.4 \
112113
cfi.4 \
113114
cfumass.4 \
114115
ch.4 \

share/man/man4/cdce.4

+1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ is running low on mbufs.
117117
.El
118118
.Sh SEE ALSO
119119
.Xr arp 4 ,
120+
.Xr cdceem 4 ,
120121
.Xr intro 4 ,
121122
.Xr ipheth 4 ,
122123
.Xr netintro 4 ,

share/man/man4/cdceem.4

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
.\" Copyright (c) 2019 Edward Tomasz Napierala <trasz@FreeBSD.org>
2+
.\"
3+
.\" Redistribution and use in source and binary forms, with or without
4+
.\" modification, are permitted provided that the following conditions
5+
.\" are met:
6+
.\" 1. Redistributions of source code must retain the above copyright
7+
.\" notice, this list of conditions and the following disclaimer.
8+
.\" 2. Redistributions in binary form must reproduce the above copyright
9+
.\" notice, this list of conditions and the following disclaimer in the
10+
.\" documentation and/or other materials provided with the distribution.
11+
.\"
12+
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13+
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14+
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15+
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16+
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17+
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18+
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19+
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20+
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21+
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22+
.\" SUCH DAMAGE.
23+
.\"
24+
.\" $FreeBSD$
25+
.Dd August 7, 2019
26+
.Dt CDCEEM 4
27+
.Os
28+
.Sh NAME
29+
.Nm cdceem
30+
.Nd "USB Communication Device Class Ethernet Emulation Model (CDC EEM) driver"
31+
.Sh SYNOPSIS
32+
To compile this driver into the kernel,
33+
place the following lines in your
34+
kernel configuration file:
35+
.Bd -ragged -offset indent
36+
.Cd "device uhci"
37+
.Cd "device ohci"
38+
.Cd "device usb"
39+
.Cd "device miibus"
40+
.Cd "device uether"
41+
.Cd "device cdceem"
42+
.Ed
43+
.Pp
44+
Alternatively, to load the driver as a
45+
module at boot time, place the following line in
46+
.Xr loader.conf 5 :
47+
.Bd -literal -offset indent
48+
if_cdceem_load="YES"
49+
.Ed
50+
.Sh DESCRIPTION
51+
The
52+
.Nm
53+
driver provides support for USB devices based on the USB Communication
54+
Device Class Ethernet Emulation Model (CDC EEM) specification.
55+
.Pp
56+
The driver works on both host, and device-side; see
57+
.Xr usb_template 4
58+
for details.
59+
.Pp
60+
The USB device appears as a regular network interface on both sides,
61+
transporting Ethernet frames.
62+
.Pp
63+
For more information on configuring this device, see
64+
.Xr ifconfig 8 .
65+
.Pp
66+
The
67+
.Nm
68+
driver does not support different media types or options.
69+
.Sh SYSCTL VARIABLES
70+
The following variables are available as both
71+
.Xr sysctl 8
72+
variables and
73+
.Xr loader 8
74+
tunables:
75+
.Bl -tag -width indent
76+
.It Va hw.usb.cdceem.debug
77+
Verbosity level for log messages from the
78+
.Nm
79+
driver.
80+
Set to 0 to disable logging or 1 to warn about potential problems.
81+
Larger values enable debugging output.
82+
Defaults to 1.
83+
.It Va hw.usb.cdceem.send_echoes
84+
If set to 1, the driver will send an Echo EEM packet when the
85+
interface is brought up.
86+
While responding to Echo is mandatory, some devices cannot handle it.
87+
Only use for debugging.
88+
Defaults to 0.
89+
.It Va hw.usb.cdceem.send_fake_crc
90+
If set to 1, the driver will use 0xdeadbeef as the CRC value
91+
for outgoing Data EEM packets.
92+
Only use for debugging.
93+
Defaults to 0.
94+
.El
95+
.Sh SEE ALSO
96+
.Xr arp 4 ,
97+
.Xr cdce 4 ,
98+
.Xr intro 4 ,
99+
.Xr ipheth 4 ,
100+
.Xr netintro 4 ,
101+
.Xr urndis 4 ,
102+
.Xr usb 4 ,
103+
.Xr usb_template 4 ,
104+
.Xr ifconfig 8
105+
.Rs
106+
.%T "Universal Serial Bus Communications Class Subclass Specification for Ethernet Emulation Model Devices"
107+
.%U https://usb.org/sites/default/files/CDC_EEM10.pdf
108+
.Re
109+
.Sh HISTORY
110+
The
111+
.Nm
112+
device driver first appeared in
113+
.Fx 13.0 .
114+
.Sh AUTHORS
115+
The
116+
.Nm
117+
driver was written by
118+
.An Edward Tomasz Napierala Aq Mt trasz@FreeBSD.org
119+
under sponsorship from Hewlett Packard Enterprise.

share/man/man4/ipheth.4

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ Apple iPad tethering (all models)
7878
.Sh SEE ALSO
7979
.Xr arp 4 ,
8080
.Xr cdce 4 ,
81+
.Xr cdceem 4 ,
8182
.Xr intro 4 ,
8283
.Xr netintro 4 ,
8384
.Xr urndis 4 ,

share/man/man4/urndis.4

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ functionality of many Android devices.
7979
.Sh SEE ALSO
8080
.Xr arp 4 ,
8181
.Xr cdce 4 ,
82+
.Xr cdceem 4 ,
8283
.Xr ipheth 4 ,
8384
.Xr netintro 4 ,
8485
.Xr usb 4 ,

share/man/man4/usb_template.4

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2424
.\" SUCH DAMAGE.
2525
.\"
26-
.Dd May 24, 2018
26+
.Dd August 7, 2019
2727
.Dt USB_TEMPLATE 4
2828
.Os
2929
.
@@ -88,6 +88,8 @@ Available templates are:
8888
.It Dv 8 Ta CDC Ethernet and serial port
8989
.It Dv 9 Ta USB MIDI
9090
.It Dv 10 Ta CDC Ethernet, serial port, and storage
91+
.It Dv 11 Ta CDC Ethernet Emulation Model, see
92+
.Xr cdceem 4
9193
.El
9294
.
9395
.Sh SYSCTL VARIABLES

sys/conf/files

+4-2
Original file line numberDiff line numberDiff line change
@@ -3338,6 +3338,7 @@ dev/usb/net/if_aue.c optional aue
33383338
dev/usb/net/if_axe.c optional axe
33393339
dev/usb/net/if_axge.c optional axge
33403340
dev/usb/net/if_cdce.c optional cdce
3341+
dev/usb/net/if_cdceem.c optional cdceem
33413342
dev/usb/net/if_cue.c optional cue
33423343
dev/usb/net/if_ipheth.c optional ipheth
33433344
dev/usb/net/if_kue.c optional kue
@@ -3351,8 +3352,8 @@ dev/usb/net/if_usie.c optional usie
33513352
dev/usb/net/if_urndis.c optional urndis
33523353
dev/usb/net/ruephy.c optional rue
33533354
dev/usb/net/usb_ethernet.c optional uether | aue | axe | axge | cdce | \
3354-
cue | ipheth | kue | mos | rue | \
3355-
smsc | udav | ure | urndis
3355+
cdceem | cue | ipheth | kue | mos | \
3356+
rue | smsc | udav | ure | urndis
33563357
dev/usb/net/uhso.c optional uhso
33573358
#
33583359
# USB WLAN drivers
@@ -3457,6 +3458,7 @@ dev/usb/template/usb_template_phone.c optional usb_template
34573458
dev/usb/template/usb_template_serialnet.c optional usb_template
34583459
dev/usb/template/usb_template_midi.c optional usb_template
34593460
dev/usb/template/usb_template_multi.c optional usb_template
3461+
dev/usb/template/usb_template_cdceem.c optional usb_template
34603462
#
34613463
# USB video drivers
34623464
#

0 commit comments

Comments
 (0)