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>