Annotation of embedaddon/quagga/zebra/rtadv.h, revision 1.1.1.2

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. */
1.1.1.2 ! misho      33:   struct prefix_ipv6 prefix;
1.1       misho      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: 
1.1.1.2 ! misho      50:   /* The value to be placed in the Router Address Flag [RFC6275 7.2]. */
1.1       misho      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: 
1.1.1.2 ! misho      61: /* RFC4584 Extension to Sockets API for Mobile IPv6 */
1.1       misho      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>