Esempio n. 1
0
 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));
 }
 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));
 }
Esempio n. 3
0
        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;
                }
            }
        }
Esempio n. 4
0
 public BufferEntry(HW.Network.NetworkDevice nic, IPPacket packet)
 {
     this.NIC = nic;
     this.Packet = packet;
     this.Status = EntryStatus.ADDED;
 }
Esempio n. 5
0
 protected UInt16 CalcOcCRC(UInt16 offset, UInt16 length)
 {
     return(IPPacket.CalcOcCRC(this.RawData, offset, length));
 }
Esempio n. 6
0
        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;
 }