1.\"- 2.\" Copyright (c) 2018 Mark Johnston <markj@FreeBSD.org> 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23.\" SUCH DAMAGE. 24.\" 25.\" $FreeBSD$ 26.\" 27.Dd May 4, 2018 28.Dt NETDUMP 4 29.Os 30.Sh NAME 31.Nm netdump 32.Nd protocol for transmitting kernel dumps to a remote server 33.Sh SYNOPSIS 34To compile netdump client support into the kernel, place the following line in 35your kernel configuration file: 36.Bd -ragged -offset indent 37.Cd "options NETDUMP" 38.Ed 39.Pp 40Debug output can be enabled by adding the following line: 41.Bd -ragged -offset indent 42.Cd "options NETDUMP_DEBUG" 43.Ed 44.Sh DESCRIPTION 45netdump is a UDP-based protocol for transmitting kernel dumps to a remote host. 46A netdump client is a panicking kernel, and a netdump server is a host 47running the 48.Nm 49daemon, available in ports as 50.Pa ports/ftp/netdumpd . 51.Nm 52clients are configured using the 53.Xr dumpon 8 54utility. 55.Pp 56.Nm 57client messages consist of a fixed-size header followed by a variable-sized 58payload. 59The header contains the message type, a sequence number, the offset of 60the payload data in the kernel dump, and the length of the payload data 61(not including the header). 62The message types are 63.Dv HERALD , FINISHED , KDH , VMCORE , 64and 65.Dv EKCD_KEY . 66.Nm 67server messages have a fixed size and contain only the sequence number of 68the client message. 69These messages indicate that the server has successfully processed the 70client message with the corresponding sequence number. 71All client messages are acknowledged this way. 72Server messages are always sent to port 20024 of the client. 73.Pp 74To initiate a 75.Nm , 76the client sends a 77.Dv HERALD 78message to the server at port 20023. 79The client may include a relative path in its payload, in which case the 80.Nm 81server should attempt to save the dump at that path relative to its configured 82dump directory. 83The server will acknowledge the 84.Dv HERALD 85using a random source port, and the client must send all subsequent messages 86to that port. 87.Pp 88The 89.Dv KDH , VMCORE , 90and 91.Dv EKCD_KEY 92message payloads contain the kernel dump header, dump contents, and 93dump encryption key respectively. 94The offset in the message header should be treated as a seek offset 95in the corresponding file. 96There are no ordering requirements for these messages. 97.Pp 98A 99.Nm 100is completed by sending the 101.Dv FINISHED 102message to the server. 103.Pp 104The following network drivers support netdump: 105.Xr alc 4 , 106.Xr bge 4 , 107.Xr bxe 4 , 108.Xr cxgb 4 , 109.Xr em 4 , 110.Xr igb 4 , 111.Xr ix 4 , 112.Xr mlx4en 4 , 113.Xr re 4 , 114.Xr vtnet 4 . 115.Sh SEE ALSO 116.Xr decryptcore 8 , 117.Xr dumpon 8 , 118.Xr savecore 8 119.Sh HISTORY 120.Nm 121client support first appeared in 122.Fx 12.0 . 123.Sh BUGS 124Only IPv4 is supported. 125.Pp 126.Nm 127may only be used after the kernel has panicked. 128