private DHCPv4Packet(DHCPv4MessagesTypes responseType, DHCPv4Packet request) : this() { MessageType = responseType; ClientHardwareAddress = ByteHelper.CopyData(request.ClientHardwareAddress); HardwareAddressLength = request.HardwareAddressLength; HardwareType = request.HardwareType; TransactionId = request.TransactionId; OpCode = DHCPv4PacketOperationCodes.BootReply; Hops = 0; Flags = request.Flags; if (request.GatewayIPAdress != IPv4Address.Empty) { GatewayIPAdress = IPv4Address.FromAddress(request.GatewayIPAdress); } AddOption(new DHCPv4PacketMessageTypeOption(responseType)); var clientIdentifierOption = request.GetOptionByIdentifier(DHCPv4OptionTypes.ClientIdentifier); if (clientIdentifierOption != null) { AddOption(new DHCPv4PacketClientIdentifierOption(DHCPv4ClientIdentifier.FromOptionData(clientIdentifierOption.OptionData))); } }
public async Task GetErrorCodesPerDHCPv4RequestType() { Random random = new Random(); DHCPv4RootScope rootScope = GetRootScope(); var response = new Dictionary <Int32, Int32>(); DateTime start = DateTime.UtcNow.AddHours(-random.Next(5, 10)); DateTime end = DateTime.UtcNow.AddHours(-random.Next(1, 2)); DHCPv4MessagesTypes packetType = random.GetEnumValue <DHCPv4MessagesTypes>(); Mock <IDHCPv4ReadStore> readStoreMock = new Mock <IDHCPv4ReadStore>(MockBehavior.Strict); readStoreMock.Setup(x => x.GetErrorCodesPerDHCPv4DHCPv4MessagesTypes(start, end, packetType)).ReturnsAsync(response).Verifiable(); var controller = new DHCPv4StatisticsController(rootScope, readStoreMock.Object); var actionResult = await controller.GetErrorCodesPerDHCPv4MessageTypes(new DHCPv4PacketTypeBasedTimeSeriesFilterRequest { Start = start, End = end, MessageType = packetType, }); var result = actionResult.EnsureOkObjectResult <IDictionary <Int32, Int32> >(true); Assert.NotNull(result); Assert.Equal(response, result); readStoreMock.Verify(); }
private void CheckPacket(DHCPv4Packet packet, DHCPv4MessagesTypes expectedType) { if (packet == null || packet.IsValid == false || packet.MessageType != expectedType) { throw new ScopeException(DHCPv4ScopeExceptionReasons.InvalidPacket); } }
private void AddOption(DHCPv4PacketOption option) { _options.Add(option); if (option is DHCPv4PacketMessageTypeOption option1) { MessageType = option1.Value; } }
private DHCPv4PacketHandledEntry(DHCPv4PacketHandledEvent handledEvent, DHCPv4MessagesTypes type) : this() { Timestamp = handledEvent.Timestamp; RequestType = type; Request = new DHCPv4PacketInformation(handledEvent.Request); ResultCode = handledEvent.ErrorCode; ScopeId = handledEvent.ScopeId; if (handledEvent.Response != null) { ResponseType = handledEvent.Response.MessageType; Response = new DHCPv4PacketInformation(handledEvent.Response); } }
public DHCPv4PacketMessageTypeOption(DHCPv4MessagesTypes value) : base( (Byte)DHCPv4OptionTypes.MessageType, new byte[] { (Byte)value }) { Value = value; }
public async Task <IDictionary <Int32, Int32> > GetErrorCodesPerDHCPv4RequestType(DateTime?start, DateTime?end, DHCPv4MessagesTypes packetType) => await GetSimpleStatisticsData <Int32, Int32>(AppendTimeRangeToUrl($"/api/Statistics/ErrorCodesPerDHCPv4MessageType?MessageType={packetType}", start, end));