MFC numerous features from HEAD.
[dragonfly.git] / usr.sbin / mrouted / rsrr_var.h
blob9b1c09c1396e06440f35db282e7eea61b698eb30
1 /*
2 * Copyright (c) 1993 by the University of Southern California
3 * All rights reserved.
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation in source and binary forms for non-commercial purposes
7 * and without fee is hereby granted, provided that the above copyright
8 * notice appear in all copies and that both the copyright notice and
9 * this permission notice appear in supporting documentation. and that
10 * any documentation, advertising materials, and other materials related
11 * to such distribution and use acknowledge that the software was
12 * developed by the University of Southern California, Information
13 * Sciences Institute. The name of the University may not be used to
14 * endorse or promote products derived from this software without
15 * specific prior written permission.
17 * THE UNIVERSITY OF SOUTHERN CALIFORNIA makes no representations about
18 * the suitability of this software for any purpose. THIS SOFTWARE IS
19 * PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
20 * INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
23 * Other copyrights might apply to parts of this software and are so
24 * noted when applicable.
27 /* RSRR things that are only needed by mrouted. */
29 /* Cache of Route Query messages, distinguished by source,
30 * destination, and client addresses. Cache is flushed by RSRR client
31 * -- it sends notification when an unwanted Route Reply is received.
32 * Since this only happens during route changes, it is more likely
33 * that the cache will be flushed when the kernel table entry is
34 * deleted. */
35 struct rsrr_cache {
36 struct rsrr_rq route_query; /* Cached Route Query */
37 struct sockaddr_un client_addr; /* Client address */
38 int client_length; /* Length of client */
39 struct rsrr_cache *next; /* next cache item */