Module Name:    src
Committed By:   bouyer
Date:           Thu May 18 11:28:49 UTC 2017

Modified Files:
        src/distrib/sets/lists/man [bouyer-socketcan]: mi
        src/share/man/man4 [bouyer-socketcan]: Makefile
Added Files:
        src/share/man/man4 [bouyer-socketcan]: can.4 canloop.4

Log Message:
Add can(4) and canloop(4) man pages


To generate a diff of this commit:
cvs rdiff -u -r1.1545.2.2 -r1.1545.2.3 src/distrib/sets/lists/man/mi
cvs rdiff -u -r1.631.2.1 -r1.631.2.2 src/share/man/man4/Makefile
cvs rdiff -u -r0 -r1.1.2.1 src/share/man/man4/can.4 \
    src/share/man/man4/canloop.4

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/man/mi
diff -u src/distrib/sets/lists/man/mi:1.1545.2.2 src/distrib/sets/lists/man/mi:1.1545.2.3
--- src/distrib/sets/lists/man/mi:1.1545.2.2	Fri Apr 21 16:51:14 2017
+++ src/distrib/sets/lists/man/mi	Thu May 18 11:28:49 2017
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1545.2.2 2017/04/21 16:51:14 bouyer Exp $
+# $NetBSD: mi,v 1.1545.2.3 2017/05/18 11:28:49 bouyer Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -954,6 +954,8 @@
 ./usr/share/man/cat4/bwi.0			man-sys-catman		.cat
 ./usr/share/man/cat4/ca.0			man-obsolete		obsolete
 ./usr/share/man/cat4/cac.0			man-sys-catman		.cat
+./usr/share/man/cat4/can.0			man-sys-catman		.cat
+./usr/share/man/cat4/canloop.0			man-sys-catman		.cat
 ./usr/share/man/cat4/cardbus.0			man-sys-catman		.cat
 ./usr/share/man/cat4/cardslot.0			man-sys-catman		.cat
 ./usr/share/man/cat4/carp.0			man-sys-catman		.cat
@@ -4066,6 +4068,8 @@
 ./usr/share/man/html4/btuart.html		man-sys-htmlman		html
 ./usr/share/man/html4/bwi.html			man-sys-htmlman		html
 ./usr/share/man/html4/cac.html			man-sys-htmlman		html
+./usr/share/man/html4/can.html			man-sys-htmlman		html
+./usr/share/man/html4/canloop.html		man-sys-htmlman		html
 ./usr/share/man/html4/cardbus.html		man-sys-htmlman		html
 ./usr/share/man/html4/cardslot.html		man-sys-htmlman		html
 ./usr/share/man/html4/carp.html			man-sys-htmlman		html
@@ -6950,6 +6954,8 @@
 ./usr/share/man/man4/bwi.4			man-sys-man		.man
 ./usr/share/man/man4/ca.4			man-obsolete		obsolete
 ./usr/share/man/man4/cac.4			man-sys-man		.man
+./usr/share/man/man4/can.4			man-sys-man		.man
+./usr/share/man/man4/canloop.4			man-sys-man		.man
 ./usr/share/man/man4/cardbus.4			man-sys-man		.man
 ./usr/share/man/man4/cardslot.4			man-sys-man		.man
 ./usr/share/man/man4/carp.4			man-sys-man		.man

Index: src/share/man/man4/Makefile
diff -u src/share/man/man4/Makefile:1.631.2.1 src/share/man/man4/Makefile:1.631.2.2
--- src/share/man/man4/Makefile:1.631.2.1	Fri Apr 21 16:53:15 2017
+++ src/share/man/man4/Makefile	Thu May 18 11:28:48 2017
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.631.2.1 2017/04/21 16:53:15 bouyer Exp $
+#	$NetBSD: Makefile,v 1.631.2.2 2017/05/18 11:28:48 bouyer Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/18/93
 
 MAN=	aac.4 ac97.4 acardide.4 aceride.4 acphy.4 \
@@ -16,7 +16,7 @@ MAN=	aac.4 ac97.4 acardide.4 aceride.4 a
 	brgphy.4 bridge.4 bthidev.4 bthub.4 btkbd.4 \
 	btmagic.4 btms.4 btsco.4 btuart.4 \
 	bwi.4 \
-	cac.4 cardbus.4 carp.4 cas.4 ccd.4 cd.4 \
+	cac.4 can.4 canloop.4 cardbus.4 carp.4 cas.4 ccd.4 cd.4 \
 	cec.4 cgd.4 cfb.4 ch.4 chipsfb.4 ciphy.4 ciss.4 clcs.4 clct.4 \
 	clockctl.4 cmdide.4 cmpci.4 cms.4 cnw.4 \
 	com.4 coram.4 crypto.4 cs80bus.4 cuda.4 cypide.4 cxdtv.4 \

Added files:

Index: src/share/man/man4/can.4
diff -u /dev/null src/share/man/man4/can.4:1.1.2.1
--- /dev/null	Thu May 18 11:28:49 2017
+++ src/share/man/man4/can.4	Thu May 18 11:28:48 2017
@@ -0,0 +1,96 @@
+.\"	$NetBSD: can.4,v 1.1.2.1 2017/05/18 11:28:48 bouyer Exp $
+.\"
+.\" Copyright (c) 2017 Manuel Bouyer.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    
+.\"
+.Dd May 18, 2017
+.Dt CAN 4
+.Os
+.Sh NAME
+.Nm CAN
+.Nd CAN Protocol
+.Sh SYNOPSIS
+.In sys/socket.h
+.In netcan/can.h
+.Ft int
+.Fn socket AF_CAN SOCK_RAW CAN_RAW
+.Sh DESCRIPTION
+.Nm
+is the network layer protocol used on top of CAN bus networks. At this time
+only the SOCK_RAW socket type is supported.
+This protocol layer is intended to be compatible with the linux SocketCAN implementation.
+.Ss ADDRESSING
+A CAN frame consists of a 11 bits (standard frame format) or 29 bits
+(extended frame format) identifier, followed by up to 8 data bytes.
+The interpretation of the identifier is application-dependant, the CAN
+standard itself doesn't define an addressing.
+.Pp
+The
+.Nm
+layer uses a 32bits identifier. The 3 upper bits are used as control flags.
+The extended frame format is selected by setting the CAN_EFF_FLAG control bit.
+.Pp
+The socket address is defined as
+.Bd -literal
+struct sockaddr_can {
+        u_int8_t        can_len;
+        sa_family_t     can_family;
+        int             can_ifindex;
+        union {
+                /* transport protocol class address information */
+                struct { canid_t rx_id, tx_id; } tp;
+                /* reserved for future CAN protocols address information */
+        } can_addr;
+};
+.Ed
+For CAN raw sockets, the 32bits identifier is part of the message data.
+The can_addr field of the sockaddr structure is not used.
+.Ss MESSAGE
+Raw CAN sockets use fixed-length messages defined as follow:
+.Bd -literal
+struct can_frame {
+        canid_t can_id; /* ID + EFF/RTR/ERR flags */
+        uint8_t can_dlc; /* frame payload length in byte (0 .. CAN_MAX_DLEN) */
+        uint8_t __pad;
+        uint8_t __res0;
+        uint8_t __res1;
+        uint8_t data[CAN_MAX_DLEN] __aligned(8);
+};
+.Ed
+The lower 11 bits (for standard frames) or 29 bits (for exended frames) are
+used as the on-wire identifier. The CAN_EFF_FLAG bit is set in can_id for
+extended frames. The CAN_RTR_FLAG bit is set in can_id for remote transmission
+request frames.
+.Sh SEE ALSO
+.Xr socket 2 ,
+.Xr netintro 4 ,
+.Xr canloop 4 ,
+.Xr canconfig 8 ,
+.Pa /usr/include/netcan/can.h 
+.Pp
+.Lk https://en.wikipedia.org/wiki/SocketCAN "SocketCAN - Wikipedia"
+.Lk https://www.kernel.org/doc/Documentation/networking/can.txt "Readme file for the Controller Area Network Protocol Family"
+.Sh BUGS
+CANFD and error frames are not implemented.
+.Sh HISTORY
+The
+.Nm
+protocol appeared in
+.Nx 8.0 .
Index: src/share/man/man4/canloop.4
diff -u /dev/null src/share/man/man4/canloop.4:1.1.2.1
--- /dev/null	Thu May 18 11:28:49 2017
+++ src/share/man/man4/canloop.4	Thu May 18 11:28:48 2017
@@ -0,0 +1,53 @@
+.\"	$NetBSD: canloop.4,v 1.1.2.1 2017/05/18 11:28:48 bouyer Exp $
+.\"
+.\" Copyright (c) 2017 Manuel Bouyer.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    
+.\"
+.Dd May 18, 2017
+.Dt CANLOOP 4
+.Os
+.Sh NAME
+.Nm canloop
+.Nd software loopback CAN network interface
+.Sh SYNOPSIS
+.Cd "pseudo-device canloop"
+.Sh DESCRIPTION
+The
+.Nm canloop
+pseudo interface is a loopback interface for the CAN layer. It can be used
+as destination by a CAN application, when no CAN hardware is available.
+Other sockets bound to the same
+.Nm canloop
+interface (or not bound to any interface) will receive the frames.
+.Pp
+.Nm canloop
+interfaces can be created by using the
+.Xr ifconfig 8
+.Cm create
+command.
+.Sh SEE ALSO
+.Xr can 4 ,
+.Xr intro 4 ,
+.Xr ifconfig 8
+.Sh HISTORY
+The
+.Nm
+device appeared in
+.Nx 8.0 .

Reply via email to