# struct netinfo {
#	struct	sockaddr rip_dst;	/* destination net/host */
#	int	rip_metric;		/* cost of route */
# };
# struct rip {
#	u_char	rip_cmd;		/* request/response */
#	u_char	rip_vers;		/* protocol version # */
#	u_char	rip_res1[2];		/* pad to 32-bit boundary */
#	union {
#		struct	netinfo ru_nets[1];	/* variable length... */
#		char	ru_tracefile[1];	/* ditto ... */
#	} ripun;
#define	rip_nets	ripun.ru_nets
#define	rip_tracefile	ripun.ru_tracefile
#define	RIPCMD_REQUEST		1	/* want info */
#define	RIPCMD_RESPONSE		2	/* responding to request */
#define	RIPCMD_TRACEON		3	/* turn tracing on */
#define	RIPCMD_TRACEOFF		4	/* turn it off */
#define	HOPCNT_INFINITY		16	/* per Xerox NS */
#define	MAXPACKETSIZE		512	/* max broadcast size */

### RIP packet redux
### UDP send FROM clued-rtr/520 to target/520
2	# RIPCMD_RESPONSE
1	# version
0	# padding
0

# sockaddr-plus-metric  structs begin, as many as necessary...
0	# len
2	# AF_INET
0	# port
0
# addr bytes:
X
Y
Z
Q
0	# filler, out to 16 bytes [sizeof (sockaddr)] ...
0
0
0
0
0
0
0
0	# metric: net-order integer
0
0
1

## that's it