示例#1
0
        public Task <Boolean> ShouldPacketBeFiltered(DHCPv6Packet packet)
        {
            _logger.LogDebug("ShouldPacketBeFiltered");

            DHCPv6Packet innerPacket   = packet.GetInnerPacket();
            Boolean      couldHaveDuid = innerPacket.CouldHaveDuid();

            if (couldHaveDuid == false && innerPacket.ShouldHaveDuid() == false)
            {
                return(Task.FromResult(false));
            }

            DUID packetServerDuid = innerPacket.GetIdentifier(DHCPv6PacketOptionTypes.ServerIdentifer);

            if (couldHaveDuid == true && packetServerDuid == DUID.Empty)
            {
                return(Task.FromResult(false));
            }

            Boolean result = packetServerDuid != _serverDuid;

            return(Task.FromResult(result));
        }