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