public virtual void Listen(NetifConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (configuration.Address == null) { throw new ArgumentNullException("The network interface device address is not allowed to be null"); } if (configuration.DnsAddress1 == null) { throw new ArgumentNullException("The network interface device dns address 1 is not allowed to be null"); } if (configuration.DnsAddress2 == null) { throw new ArgumentNullException("The network interface device dns address 2 is not allowed to be null"); } if (configuration.GatewayAddress == null) { throw new ArgumentNullException("The network interface device gateway address is not allowed to be null"); } if (configuration.SubnetMask == null) { throw new ArgumentNullException("The network interface device subnet mask is not allowed to be null"); } StartNetifInformation(configuration); ListenNetifLevel3Input((buffer, length) => { IPFrame ip = IPv4.Parse(new BufferSegment(new BufferSegment(buffer, length).ToArray())); if (ip != null) { IPv4.Input(ip); } }); }