1.\" Copyright (c) 1990, 1991 The Regents of the University of California. 2.\" All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" the Systems Programming Group of the University of Utah Computer 6.\" Science Department. 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 1. Redistributions of source code must retain the above copyright 11.\" notice, this list of conditions and the following disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 3. Neither the name of the University nor the names of its contributors 16.\" may be used to endorse or promote products derived from this software 17.\" without specific prior written permission. 18.\" 19.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29.\" SUCH DAMAGE. 30.\" 31.\" from: @(#)rmp.4 5.2 (Berkeley) 3/27/91 32.\" $NetBSD: rmp.4,v 1.13 2022/06/28 20:12:52 rillig Exp $ 33.\" 34.Dd June 28, 2022 35.Dt RMP 4 hp300 36.Os 37.Sh NAME 38.Nm rmp 39.Nd 40.Tn HP 41Remote Maintenance Protocol Family 42.Sh SYNOPSIS 43.Cd "options RMP" 44.In sys/types.h 45.In sys/socket.h 46.In netrmp/rmp.h 47.In netrmp/rmp_var.h 48.Ft int 49.Fn socket AF_RMP SOCK_RAW proto 50.Sh DESCRIPTION 51Hewlett-Packard's Remote Maintenance Protocol family is a collection 52of protocols layered atop 53.Tn IEEE 802.3 . 54The current implementation of the RMP family provides protocol support only 55for the 56.Dv SOCK_RAW 57socket type. 58As a result, 59.Xr sendto 2 60and 61.Xr recvfrom 2 62must be used to send and 63receive 64.Tn RMP 65packets. 66.Pp 67The format of an 68.Tn RMP 69packet is defined in the include file 70.In netrmp/rmp_var.h . 71The 72.Tn RMP 73packet arrives encapsulated in an 74.Pf ( Tn HP 75extended) 76.Tn IEEE 802.2 77packet. 78The 79.Tn IEEE 802.2 80packet 81is preceded by the kernel address of an 82.Ar ifnet struct 83which is used to `route' a packet out the same interface it 84arrived on. 85Outgoing packets are encapsulated in a standard 86.Tn IEEE 802.3 87packet, while incoming packets have this information stripped away. 88.Sh ADDRESSING 89.Tn RMP 90.Pf ( Tn IEEE 91802.3) addresses are 6 octets in length (48 bytes). 92Sockets in the Remote Maintenance Protocol family use the following 93addressing structure: 94.Bd -literal -offset indent 95struct sockaddr_rmp { 96 short srmp_family; 97 u_char srmp_dhost[6]; 98}; 99.Ed 100.Sh PROTOCOLS 101The 102.Tn RMP 103protocol family supported by the operating system 104currently consists of the Boot Protocol 105.Pq Em proto= Ns Dv RMPPROTO_BOOT . 106Unfortunately, we have no documentation on the Remote Maintenance 107Protocol and only sketchy information about the Boot Protocol. 108.Sh SEE ALSO 109.Xr bind 2 , 110.Xr recvfrom 2 , 111.Xr sendto 2 , 112.Xr socket 2 , 113.Xr hp300/intro 4 , 114.Xr rbootd 8 115.Rs 116.%T "An Introductory 4.4BSD Interprocess Communication Tutorial" 117.%A Stuart Sechrest 118.Re 119.Pq see Pa /usr/share/doc/reference/ref3/sockets 120.Rs 121.%T "Advanced 4.4BSD IPC Tutorial" 122.%A Samuel J. Leffler 123.%A Robert S. Fabry 124.%A William N. Joy 125.%A Phil Lapsley 126.%A Steve Miller 127.%A Chris Torek 128.Re 129.Pq see Pa /usr/share/doc/reference/ref3/sockets-advanced 130.Sh HISTORY 131The 132.Nm 133protocol interface 134.Ud 135.Sh BUGS 136.Bl -bullet 137.It 138The 139.Tn HP ROM 140uses 141.Tn IEEE 142802.3 (as opposed to Ethernet) packets. While the 143kernel heuristically recognizes these packets, a more general mechanism 144for doing so should be provided. 145.It 146The 147.Tn HP ROM 148uses a multicast address when first trying to locate boot 149servers. While the Ethernet [sic] board is programmed to recognize 150this particular multicast address (9:0:9:0:0:4), a more general 151mechanism for doing so should be provided. 152.It 153The kernel supports only 154.Tn RAW 155sockets for the 156.Tn RMP 157protocol. 158This is either a bug or a feature, since the kernel is smaller at the 159price of greater complexity in the server. 160.It 161There is no support for 162.Xr bind 2 Ns 'ing 163an address in the 164.Tn RMP 165domain. 166Something like an 167.Dv RMPADDR_ANY 168should be provided to prevent more than one 169.Xr rbootd 8 170server from running at the same time. 171.El 172