Annotation of embedaddon/quagga/zebra/rtadv.h, revision 1.1
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:
! 29: /* Router advertisement prefix. */
! 30: struct rtadv_prefix
! 31: {
! 32: /* Prefix to be advertised. */
! 33: struct prefix prefix;
! 34:
! 35: /* The value to be placed in the Valid Lifetime in the Prefix */
! 36: u_int32_t AdvValidLifetime;
! 37: #define RTADV_VALID_LIFETIME 2592000
! 38:
! 39: /* The value to be placed in the on-link flag */
! 40: int AdvOnLinkFlag;
! 41:
! 42: /* The value to be placed in the Preferred Lifetime in the Prefix
! 43: Information option, in seconds.*/
! 44: u_int32_t AdvPreferredLifetime;
! 45: #define RTADV_PREFERRED_LIFETIME 604800
! 46:
! 47: /* The value to be placed in the Autonomous Flag. */
! 48: int AdvAutonomousFlag;
! 49:
! 50: /* The value to be placed in the Router Address Flag (RFC3775 7.2). */
! 51: int AdvRouterAddressFlag;
! 52: #ifndef ND_OPT_PI_FLAG_RADDR
! 53: #define ND_OPT_PI_FLAG_RADDR 0x20
! 54: #endif
! 55:
! 56: };
! 57:
! 58: extern void rtadv_config_write (struct vty *, struct interface *);
! 59: extern void rtadv_init (void);
! 60:
! 61: /* draft-ietf-mip6-mipext-advapi-03 */
! 62:
! 63: #ifndef ND_OPT_ADV_INTERVAL
! 64: #define ND_OPT_ADV_INTERVAL 7 /* Adv Interval Option */
! 65: #endif
! 66: #ifndef ND_OPT_HA_INFORMATION
! 67: #define ND_OPT_HA_INFORMATION 8 /* HA Information Option */
! 68: #endif
! 69:
! 70: #ifndef HAVE_STRUCT_ND_OPT_ADV_INTERVAL
! 71: struct nd_opt_adv_interval { /* Advertisement interval option */
! 72: uint8_t nd_opt_ai_type;
! 73: uint8_t nd_opt_ai_len;
! 74: uint16_t nd_opt_ai_reserved;
! 75: uint32_t nd_opt_ai_interval;
! 76: } __attribute__((__packed__));
! 77: #else
! 78: #ifndef HAVE_STRUCT_ND_OPT_ADV_INTERVAL_ND_OPT_AI_TYPE
! 79: /* fields may have to be renamed */
! 80: #define nd_opt_ai_type nd_opt_adv_interval_type
! 81: #define nd_opt_ai_len nd_opt_adv_interval_len
! 82: #define nd_opt_ai_reserved nd_opt_adv_interval_reserved
! 83: #define nd_opt_ai_interval nd_opt_adv_interval_ival
! 84: #endif
! 85: #endif
! 86:
! 87: #ifndef HAVE_STRUCT_ND_OPT_HOMEAGENT_INFO
! 88: struct nd_opt_homeagent_info { /* Home Agent info */
! 89: u_int8_t nd_opt_hai_type;
! 90: u_int8_t nd_opt_hai_len;
! 91: u_int16_t nd_opt_hai_reserved;
! 92: u_int16_t nd_opt_hai_preference;
! 93: u_int16_t nd_opt_hai_lifetime;
! 94: } __attribute__((__packed__));
! 95: #endif
! 96:
! 97: extern const char *rtadv_pref_strs[];
! 98:
! 99: #endif /* _ZEBRA_RTADV_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>