Msg File src/inet/networklayer/xmipv6/MobilityHeader.msg
Name | Type | Description |
---|---|---|
MobilityHeaderType | enum | (no description) |
MobilityHeader | class |
extends Ipv6ExtensionHeader // TODO check how to define MobilityHeader as subclass of Ipv6ExtensionHeader |
BindingUpdate | class | (no description) |
BaStatus | enum | (no description) |
BindingAcknowledgement | class | (no description) |
BeStatus | enum | (no description) |
BindingError | class | (no description) |
HomeTestInit | class | (no description) |
HomeTest | class | (no description) |
CareOfTestInit | class | (no description) |
CareOfTest | class | (no description) |
BindingRefreshRequest | class |
18.09.07 - CB |
HomeAddressOption | class |
17.10.07 - CB |
Source code
// // Copyright (C) 2007 // Faqir Zarrar Yousaf // Communication Networks Institute, Dortmund University of Technology (TU Dortmund), Germany. // Christian Bauer // Institute of Communications and Navigation, German Aerospace Center (DLR) // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // import inet.common.INETDefs; import inet.common.packet.chunk.Chunk; import inet.networklayer.contract.ipv6.Ipv6Address; import inet.networklayer.ipv6.Ipv6Header; import inet.networklayer.ipv6.Ipv6ExtensionHeaders; namespace inet; enum MobilityHeaderType { BINDING_REFRESH_REQUEST = 0; HOME_TEST_INIT = 1; CARE_OF_TEST_INIT = 2; HOME_TEST = 3; CARE_OF_TEST = 4; BINDING_UPDATE = 5; BINDING_ACKNOWLEDGEMENT = 6; BINDING_ERROR = 7; } class MobilityHeader extends FieldsChunk // extends Ipv6ExtensionHeader // TODO check how to define MobilityHeader as subclass of Ipv6ExtensionHeader { MobilityHeaderType mobilityHeaderType; } class BindingUpdate extends MobilityHeader { unsigned int lifetime; unsigned int sequence; bool ackFlag; //A-Flag (Acknowledge Flag) bool homeRegistrationFlag; //H-Flag (Home Registration Flag) bool linkLocalAddressCompatibilityFlag; //L-Flag (Link Local Address Compatibility Flag) bool keyManagementFlag = false; //K-Flag (Key Management Flag) //Mobility Options not defined Ipv6Address homeAddressMN; //As BU is supposed to be sent with Home Address Option, therefore i make this part of BU Msg. // for CN communication; value different from 0 shows that it is used int bindingAuthorizationData = 0; // 28.08.07 - CB } //Defining the status fields for the Binding Acknowledgement Message enum BaStatus { BINDING_UPDATE_ACCEPTED = 0; BU_ACCEPT_BUT_DISCOVER_PREFIX = 1; REASON_UNSPECIFIED = 128; ADMINISTRATIVELY_PROHIBITED = 129; INSUFFICIENT_RESOURCES = 130; HOME_REGISTRATION_NOT_SUPPORTED = 131; NOT_HOME_SUBNET = 132; NOT_HA_FOR_THIS_MN = 133; DAD_FAILED = 134; SEQUENCE_NUMBER_OUT_OF_WINDOW = 135; EXPIRED_HOME_NONCE_INDEX = 136; EXPIRED_CARE_OF_NONCE_INDEX = 137; EXPIRED_NONCES = 138; REGISTRATION_TYPE_CHANGE_DISALLOWED = 139; } //==================Defining Binding Acknowledgement Message=================== class BindingAcknowledgement extends MobilityHeader { BaStatus status; unsigned int sequenceNumber; unsigned int lifetime; bool keyManagementFlag = false;//K-Flag (Key Management Flag) //Mobility Options not defined // for CN communication; value different from 0 shows that it is used int bindingAuthorizationData = 0; // 28.08.07 - CB } //==================Defining Binding Error Status==================== enum BeStatus { UNKNOWN_BINDING_FOR_HOME_ADDRESS_DEST_OPTION = 1; UNKNOWN_MH_TYPE = 2; //Unrecognised MH Type } //==================Defining Binding Error Message=================== class BindingError extends MobilityHeader { BeStatus status; Ipv6Address homeAddress; //Mobility Options not defined } //=============Message definition of Home Test Init Message ========== class HomeTestInit extends MobilityHeader { unsigned int homeInitCookie; } //=============Message definition of Home Test Message ========== class HomeTest extends MobilityHeader { unsigned int homeInitCookie; unsigned int homeKeyGenToken; // home nonce index not modelled } //=============Message definition of Care-of Test Init Message ========== class CareOfTestInit extends MobilityHeader { unsigned int careOfInitCookie; } //=============Message definition of Care-of Test Message ========== class CareOfTest extends MobilityHeader { unsigned int careOfInitCookie; unsigned int careOfKeyGenToken; // care-of nonce index not modelled } /////////////////////////////////////////// // 18.09.07 - CB /////////////////////////////////////////// class BindingRefreshRequest extends MobilityHeader { } /////////////////////////////////////////// // 17.10.07 - CB /////////////////////////////////////////// class HomeAddressOption extends Ipv6DestinationOptionsHeader { Ipv6Address homeAddress; }