/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1999 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _SNOOP_MIP_H
#define _SNOOP_MIP_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* E X T E N S I O N S
*/
typedef struct {
} exthdr_t;
/* This header is used for Generalized MIP Authentication Extensions */
typedef struct {
} gen_exthdr_t;
/* Subtypes for Generalized MIP Authentication Extension (GEN_AUTH) */
#define KEY_ALG_NONE 0
/*
* R E G I S T R A T I O N P R O T O C O L
*/
typedef struct ident_str {
} ident_t;
#ifdef __sparc
#ifdef _BIT_FIELDS_HTOL
typedef struct registration_request_str {
} regreq_t;
#endif /* _BIT_FIELDS_HTOL */
#endif /* __sparc */
#ifdef __i386
#ifdef _BIT_FIELDS_LTOH
typedef struct registration_request_str {
} regreq_t;
#endif /* _BIT_FIELDS_LTOH */
#endif /* __i386 */
/*
* Registration Reply sent by a home agent to a mobile node in
* response to a registration request.
*/
typedef struct registration_reply_str {
} regrep_t;
/* service ok */
#define REPLY_CODE_ACK 0
/* denied by FA */
/* denied by HA */
/*
* OTHER EXTENSIONS
*/
/*
* The second set consists of those extensions which may appear only
* in ICMP Router Discovery messages [4]. Currently, Mobile IP
* defines the following Types for Extensions appearing in ICMP
* Router Discovery messages:
*
* 0 One-byte PaddingOne-byte Padding (encoded with no Length nor
* Data field)
* 16 Mobility Agent Advertisement
* 19 Prefix-Lengths
*/
#define ICMP_ADV_MSG_PADDING_EXT 0
/*
* Mobility Agent Advertisement Extension
* The Mobility Agent Adv Extension follows the ICMP Router
* Advertisement fields.It is used to indicate that an ICMP Router
* Advertisement message is also an Agent Advertisement being sent
* by a mobility agent.
*
* Type 16
* Length (6 + 4*N), where N is the number of care-of addresses
* advertised.
*
* Sequence Number
* The count of Agent Advertisement messages sent since the
* agent was initialized (Section 2.3.2).
*
* Registration Lifetime
* The longest lifetime (measured in seconds) that this
* agent is willing to accept in any Registration Request.
* A value of 0xffff indicates infinity. This field has no
* relation to the "Lifetime" field within the ICMP Router
* Advertisement portion of the Agent Advertisement.
*
* R Registration required. Registration with this foreign
* agent (or another foreign agent on this link) is required
* rather than using a co-located care-of address.
*
* B Busy. The foreign agent will not accept registrations
* from additional mobile nodes.
*
* H Home agent. This agent offers service as a home agent
* on the link on which this Agent Advertisement message is
* sent.
*
* F Foreign agent. This agent offers service as a foreign
* agent on the link on which this Agent Advertisement
* message is sent.
*
* M Minimal encapsulation. This agent implements receiving
* tunneled datagrams that use minimal encapsulation [15].
*
* G GRE encapsulation. This agent implements receiving
* tunneled datagrams that use GRE encapsulation [8].
*
* V Van Jacobson header compression. This agent supports use
* of Van Jacobson header compression [10] over the link
* with any registered mobile node.
*
* reserved sent as zero; ignored on reception.
*
* Care-of Address(es)
* The advertised foreign agent care-of address(es) provided
* by this foreign agent. An Agent Advertisement MUST
* include at least one care-of address if the 'F' bit
* is set. The number of care-of addresses present is
* determined by the Length field in the Extension.
*
* A HA must always be prepared to serve the mobile nodes for
* which it is the home agent. A FA may at times be too busy
* to serve additional MNs; even so, it must continue to send
* Agent Advertisements, so that any mobile nodes already registered
* with it will know that they have not moved out of range of the
* foreign agent and that the has not failed. A foreign
* agent may indicate that it is "too busy" to allow new MNs to
* register with it, by setting the 'B' bit in its Agent Adv.
* An Agent Adv message MUST NOT have the 'B' bit set if the
* 'F' bit is not also set, and at least one of the 'F' bit and the
* 'H' bit MUST be set in any Agent Advertisement message sent.
*
* When a FA wishes to require registration even from those
* mobile nodes which have acquired a co-located care-of address, it
* sets the 'R' bit to one. Because this bit applies only to foreign
* agents, an agent MUST NOT set the 'R' bit to one unless the 'F'
* bit is also set to one.
*/
#ifdef __sparc
#ifdef _BIT_FIELDS_HTOL
typedef struct mobility_agt_adv_extension {
#endif /* _BIT_FIELDS_HTOL */
#endif /* __sparc */
#ifdef __i386
#ifdef _BIT_FIELDS_LTOH
typedef struct mobility_agt_adv_extension {
#endif /* _BIT_FIELDS_LTOH */
#endif /* __i386 */
#ifdef __cplusplus
}
#endif
#endif /* _SNOOP_MIP_H */