internal static void AddPacket(IPPacket packet) { ensureQueueExists(); HW.Network.NetworkDevice nic = TCPIPStack.FindInterface(packet.SourceIP); packet.SourceMAC = nic.MACAddress; queue.Add(new BufferEntry(nic, packet)); }
private static void IPv4Handler(byte[] packetData) { TCPIP.IPPacket ip_packet = new TCPIP.IPPacket(packetData); ARP.ARPCache.Update(ip_packet.SourceIP, ip_packet.SourceMAC); if ((addressMap.ContainsKey(ip_packet.DestinationIP.To32BitNumber()) == true) || (ip_packet.DestinationIP.address[3] == 255)) { switch (ip_packet.Protocol) { case 1: IPv4_ICMPHandler(packetData); break; case 6: IPv4_TCPHandler(packetData); break; case 17: IPv4_UDPHandler(packetData); break; } } }
public BufferEntry(HW.Network.NetworkDevice nic, IPPacket packet) { this.NIC = nic; this.Packet = packet; this.Status = EntryStatus.ADDED; }
protected UInt16 CalcOcCRC(UInt16 offset, UInt16 length) { return(IPPacket.CalcOcCRC(this.RawData, offset, length)); }