internal override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.HomeNonceIndex, HomeNonceIndex, Endianity.Big); buffer.Write(offset + MessageDataOffset.HomeInitCookie, HomeInitCookie, Endianity.Big); buffer.Write(offset + MessageDataOffset.HomeKeygenToken, HomeKeygenToken, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal sealed override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); WriteMessageDataBetweenSequenceNumberAndLifetime(buffer, offset); buffer.Write(offset + MessageDataOffset.Lifetime, Lifetime, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal sealed override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); byte flags = 0; if (Acknowledge) { flags |= MessageDataMask.Acknowledge; } if (HomeRegistration) { flags |= MessageDataMask.HomeRegistration; } if (LinkLocalAddressCompatibility) { flags |= MessageDataMask.LinkLocalAddressCompatibility; } if (KeyManagementMobilityCapability) { flags |= MessageDataMask.KeyManagementMobilityCapability; } buffer.Write(offset + MessageDataOffset.Acknowledge, flags); buffer.Write(offset + MessageDataOffset.Lifetime, Lifetime, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.NumberOfAddresses, (byte)HomeAgentAddresses.Count); for (int i = 0; i != HomeAgentAddresses.Count; ++i) { buffer.Write(offset + MessageDataOffset.HomeAgentAddresses + i * IpV6Address.SizeOf, HomeAgentAddresses[i], Endianity.Big); } MobilityOptions.Write(buffer, offset + MessageDataOffset.HomeAgentAddresses + HomeAgentAddresses.Count * IpV6Address.SizeOf); }
internal sealed override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.Status, (byte)Status); if (KeyManagementMobilityCapability) { buffer.Write(offset + MessageDataOffset.KeyManagementMobilityCapability, MessageDataMask.KeyManagementMobilityCapability); } buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); buffer.Write(offset + MessageDataOffset.Lifetime, Lifetime, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal override void WriteMessageData(byte[] buffer, int offset) { byte isUnsolicitedHeartbeatResponseAndIsResponse = 0; if (IsUnsolicitedHeartbeatResponse) { isUnsolicitedHeartbeatResponseAndIsResponse |= MessageDataMask.IsUnsolicitedHeartbeatResponse; } if (IsResponse) { isUnsolicitedHeartbeatResponseAndIsResponse |= MessageDataMask.IsResponse; } buffer.Write(offset + MessageDataOffset.IsUnsolicitedHeartbeatResponse, isUnsolicitedHeartbeatResponseAndIsResponse); buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.MobilityOptions); }
internal override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); byte assignedAddressConfigurationAndBuffer = 0; if (AssignedAddressConfiguration) { assignedAddressConfigurationAndBuffer |= MessageDataMask.AssignedAddressConfiguration; } if (Buffer) { assignedAddressConfigurationAndBuffer |= MessageDataMask.Buffer; } buffer.Write(offset + MessageDataOffset.AssignedAddressConfiguration, assignedAddressConfigurationAndBuffer); buffer.Write(offset + MessageDataOffset.Code, (byte)Code); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal sealed override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.BindingRevocationType, (byte)BindingRevocationType); buffer.Write(offset + MessageDataOffset.RevocationTriggerOrStatus, RevocationTriggerOrStatus); buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); byte flags = 0; if (ProxyBinding) { flags |= MessageDataMask.ProxyBinding; } if (IpV4HomeAddressBindingOnly) { flags |= MessageDataMask.IpV4HomeAddressBindingOnly; } if (Global) { flags |= MessageDataMask.Global; } buffer.Write(offset + MessageDataOffset.ProxyBinding, flags); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
private bool EqualsData(IpV6ExtensionHeaderMobility other) { return(other != null && MobilityHeaderType == other.MobilityHeaderType && Checksum == other.Checksum && MobilityOptions.Equals(other.MobilityOptions) && EqualsMessageData(other)); }
internal override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.SequenceNumber, SequenceNumber, Endianity.Big); buffer.Write(offset + MessageDataOffset.Code, (byte)Code); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.CareOfInitCookie, CareOfInitCookie, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal override void WriteMessageData(byte[] buffer, int offset) { MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }
internal override void WriteMessageData(byte[] buffer, int offset) { buffer.Write(offset + MessageDataOffset.Status, (byte)Status); buffer.Write(offset + MessageDataOffset.HomeAddress, HomeAddress, Endianity.Big); MobilityOptions.Write(buffer, offset + MessageDataOffset.Options); }