aboutsummaryrefslogtreecommitdiff
path: root/Inveigh/Protocols/Quiddity/Protocols/DHCPv6/Options/Values/DHCPv6DUIDLLT.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Inveigh/Protocols/Quiddity/Protocols/DHCPv6/Options/Values/DHCPv6DUIDLLT.cs')
-rw-r--r--Inveigh/Protocols/Quiddity/Protocols/DHCPv6/Options/Values/DHCPv6DUIDLLT.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/Inveigh/Protocols/Quiddity/Protocols/DHCPv6/Options/Values/DHCPv6DUIDLLT.cs b/Inveigh/Protocols/Quiddity/Protocols/DHCPv6/Options/Values/DHCPv6DUIDLLT.cs
new file mode 100644
index 0000000..45408bd
--- /dev/null
+++ b/Inveigh/Protocols/Quiddity/Protocols/DHCPv6/Options/Values/DHCPv6DUIDLLT.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+
+namespace Quiddity.DHCPv6
+{
+ public class DHCPv6DUIDLLT
+ {
+ // https://datatracker.ietf.org/doc/html/rfc3315#section-9
+ public ushort DUIDType { get; set; }
+ public ushort HardwareType { get; set; }
+ public uint Time { get; set; }
+ public byte[] LinkLayerAddress { get; set; }
+
+ public DHCPv6DUIDLLT()
+ {
+
+ }
+
+ public DHCPv6DUIDLLT(byte[] data)
+ {
+ ReadBytes(data, 0);
+ }
+
+ public void ReadBytes(byte[] data, int index)
+ {
+
+ using (MemoryStream memoryStream = new MemoryStream(data))
+ {
+ PacketReader packetReader = new PacketReader(memoryStream);
+ memoryStream.Position = index;
+ this.DUIDType = packetReader.BigEndianReadUInt16();
+ this.HardwareType = packetReader.BigEndianReadUInt16();
+ this.Time = packetReader.BigEndianReadUInt32();
+ this.LinkLayerAddress = packetReader.ReadBytes(6);
+ }
+
+ }
+
+ public byte[] GetBytes()
+ {
+
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ PacketWriter packetWriter = new PacketWriter(memoryStream);
+ packetWriter.BigEndianWrite(this.DUIDType);
+ packetWriter.BigEndianWrite(this.HardwareType);
+ packetWriter.Write(this.LinkLayerAddress);
+ return memoryStream.ToArray();
+ }
+
+ }
+
+ }
+}