Annotation of embedaddon/quagga/zebra/rtadv.h, revision 1.1.1.4
1.1 misho 1: /* Router advertisement
2: * Copyright (C) 2005 6WIND <jean-mickael.guerin@6wind.com>
3: * Copyright (C) 1999 Kunihiro Ishiguro
4: *
5: * This file is part of GNU Zebra.
6: *
7: * GNU Zebra is free software; you can redistribute it and/or modify it
8: * under the terms of the GNU General Public License as published by the
9: * Free Software Foundation; either version 2, or (at your option) any
10: * later version.
11: *
12: * GNU Zebra is distributed in the hope that it will be useful, but
13: * WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public License
18: * along with GNU Zebra; see the file COPYING. If not, write to the Free
19: * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
20: * 02111-1307, USA.
21: */
22:
23: #ifndef _ZEBRA_RTADV_H
24: #define _ZEBRA_RTADV_H
25:
26: #include "vty.h"
27: #include "zebra/interface.h"
28:
1.1.1.3 misho 29: /* NB: RTADV is defined in zebra/interface.h above */
1.1.1.4 ! misho 30: #if defined (HAVE_RTADV)
1.1.1.3 misho 31:
1.1 misho 32: /* Router advertisement prefix. */
33: struct rtadv_prefix
34: {
35: /* Prefix to be advertised. */
1.1.1.2 misho 36: struct prefix_ipv6 prefix;
1.1 misho 37:
38: /* The value to be placed in the Valid Lifetime in the Prefix */
39: u_int32_t AdvValidLifetime;
40: #define RTADV_VALID_LIFETIME 2592000
41:
42: /* The value to be placed in the on-link flag */
43: int AdvOnLinkFlag;
44:
45: /* The value to be placed in the Preferred Lifetime in the Prefix
46: Information option, in seconds.*/
47: u_int32_t AdvPreferredLifetime;
48: #define RTADV_PREFERRED_LIFETIME 604800
49:
50: /* The value to be placed in the Autonomous Flag. */
51: int AdvAutonomousFlag;
52:
1.1.1.2 misho 53: /* The value to be placed in the Router Address Flag [RFC6275 7.2]. */
1.1 misho 54: int AdvRouterAddressFlag;
55: #ifndef ND_OPT_PI_FLAG_RADDR
56: #define ND_OPT_PI_FLAG_RADDR 0x20
57: #endif
58:
59: };
60:
61: extern void rtadv_config_write (struct vty *, struct interface *);
62:
1.1.1.2 misho 63: /* RFC4584 Extension to Sockets API for Mobile IPv6 */
1.1 misho 64:
65: #ifndef ND_OPT_ADV_INTERVAL
66: #define ND_OPT_ADV_INTERVAL 7 /* Adv Interval Option */
67: #endif
68: #ifndef ND_OPT_HA_INFORMATION
69: #define ND_OPT_HA_INFORMATION 8 /* HA Information Option */
70: #endif
71:
72: #ifndef HAVE_STRUCT_ND_OPT_ADV_INTERVAL
73: struct nd_opt_adv_interval { /* Advertisement interval option */
74: uint8_t nd_opt_ai_type;
75: uint8_t nd_opt_ai_len;
76: uint16_t nd_opt_ai_reserved;
77: uint32_t nd_opt_ai_interval;
78: } __attribute__((__packed__));
79: #else
80: #ifndef HAVE_STRUCT_ND_OPT_ADV_INTERVAL_ND_OPT_AI_TYPE
81: /* fields may have to be renamed */
82: #define nd_opt_ai_type nd_opt_adv_interval_type
83: #define nd_opt_ai_len nd_opt_adv_interval_len
84: #define nd_opt_ai_reserved nd_opt_adv_interval_reserved
85: #define nd_opt_ai_interval nd_opt_adv_interval_ival
86: #endif
87: #endif
88:
89: #ifndef HAVE_STRUCT_ND_OPT_HOMEAGENT_INFO
90: struct nd_opt_homeagent_info { /* Home Agent info */
91: u_int8_t nd_opt_hai_type;
92: u_int8_t nd_opt_hai_len;
93: u_int16_t nd_opt_hai_reserved;
94: u_int16_t nd_opt_hai_preference;
95: u_int16_t nd_opt_hai_lifetime;
96: } __attribute__((__packed__));
97: #endif
98:
99: extern const char *rtadv_pref_strs[];
100:
1.1.1.4 ! misho 101: #endif /* HAVE_RTADV */
! 102:
! 103: extern void rtadv_init (struct zebra_vrf *);
! 104: extern void rtadv_terminate (struct zebra_vrf *);
! 105: extern void rtadv_cmd_init (void);
1.1.1.3 misho 106:
1.1 misho 107: #endif /* _ZEBRA_RTADV_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>