mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-24 12:35:31 +00:00
Use Global debugger
For some unknown reasons, NetworkStack debugger is not working
This commit is contained in:
parent
a5789fcd0e
commit
c310d54535
12 changed files with 33 additions and 37 deletions
|
|
@ -4,6 +4,7 @@ using System.Collections.Generic;
|
||||||
using Cosmos.Core;
|
using Cosmos.Core;
|
||||||
using Cosmos.Debug.Kernel;
|
using Cosmos.Debug.Kernel;
|
||||||
using Cosmos.HAL.BlockDevice;
|
using Cosmos.HAL.BlockDevice;
|
||||||
|
using Cosmos.HAL.Network;
|
||||||
|
|
||||||
namespace Cosmos.HAL
|
namespace Cosmos.HAL
|
||||||
{
|
{
|
||||||
|
|
@ -63,7 +64,8 @@ namespace Cosmos.HAL
|
||||||
AHCI.InitDriver();
|
AHCI.InitDriver();
|
||||||
//EHCI.InitDriver();
|
//EHCI.InitDriver();
|
||||||
|
|
||||||
Network.NetworkInit.Init();
|
mDebugger.Send("Network Devices Init");
|
||||||
|
NetworkInit.Init();
|
||||||
|
|
||||||
mDebugger.Send("Done initializing Cosmos.HAL.Global");
|
mDebugger.Send("Done initializing Cosmos.HAL.Global");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,10 +86,13 @@ namespace Cosmos.System
|
||||||
|
|
||||||
mDebugger.Send("HW Init");
|
mDebugger.Send("HW Init");
|
||||||
HAL.Global.Init(textScreen);
|
HAL.Global.Init(textScreen);
|
||||||
|
|
||||||
|
Network.NetworkStack.Init();
|
||||||
|
mDebugger.Send("Network Stack Init");
|
||||||
|
|
||||||
NumLock = false;
|
NumLock = false;
|
||||||
CapsLock = false;
|
CapsLock = false;
|
||||||
ScrollLock = false;
|
ScrollLock = false;
|
||||||
Network.NetworkStack.Init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ namespace Cosmos.System.Network.ARP
|
||||||
ARPRequest_Ethernet arp_request = new ARPRequest_Ethernet(packetData);
|
ARPRequest_Ethernet arp_request = new ARPRequest_Ethernet(packetData);
|
||||||
if (arp_request.SenderIP == null)
|
if (arp_request.SenderIP == null)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("SenderIP null in ARPHandler!");
|
Global.mDebugger.Send("SenderIP null in ARPHandler!");
|
||||||
}
|
}
|
||||||
arp_request = new ARPRequest_Ethernet(packetData);
|
arp_request = new ARPRequest_Ethernet(packetData);
|
||||||
|
|
||||||
|
|
@ -66,7 +66,7 @@ namespace Cosmos.System.Network.ARP
|
||||||
|
|
||||||
if (NetworkStack.AddressMap.ContainsKey(arp_request.TargetIP.Hash) == true)
|
if (NetworkStack.AddressMap.ContainsKey(arp_request.TargetIP.Hash) == true)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("ARP Request Recvd from " + arp_request.SenderIP.ToString());
|
Global.mDebugger.Send("ARP Request Recvd from " + arp_request.SenderIP.ToString());
|
||||||
NetworkDevice nic = NetworkStack.AddressMap[arp_request.TargetIP.Hash];
|
NetworkDevice nic = NetworkStack.AddressMap[arp_request.TargetIP.Hash];
|
||||||
|
|
||||||
ARPReply_Ethernet reply =
|
ARPReply_Ethernet reply =
|
||||||
|
|
@ -81,9 +81,9 @@ namespace Cosmos.System.Network.ARP
|
||||||
if ((arp_packet.HardwareType == 1) && (arp_packet.ProtocolType == 0x0800))
|
if ((arp_packet.HardwareType == 1) && (arp_packet.ProtocolType == 0x0800))
|
||||||
{
|
{
|
||||||
ARPReply_Ethernet arp_reply = new ARPReply_Ethernet(packetData);
|
ARPReply_Ethernet arp_reply = new ARPReply_Ethernet(packetData);
|
||||||
NetworkStack.debugger.Send("Received ARP Reply");
|
Global.mDebugger.Send("Received ARP Reply");
|
||||||
NetworkStack.debugger.Send(arp_reply.ToString());
|
Global.mDebugger.Send(arp_reply.ToString());
|
||||||
NetworkStack.debugger.Send("ARP Reply Recvd from " + arp_reply.SenderIP.ToString());
|
Global.mDebugger.Send("ARP Reply Recvd from " + arp_reply.SenderIP.ToString());
|
||||||
ARPCache.Update(arp_reply.SenderIP, arp_reply.SenderMAC);
|
ARPCache.Update(arp_reply.SenderIP, arp_reply.SenderMAC);
|
||||||
|
|
||||||
OutgoingBuffer.ARPCache_Update(arp_reply);
|
OutgoingBuffer.ARPCache_Update(arp_reply);
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ namespace Cosmos.System.Network.ARP
|
||||||
mSenderIP = new Address(RawData, 28);
|
mSenderIP = new Address(RawData, 28);
|
||||||
if (SenderIP == null)
|
if (SenderIP == null)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("But its already null again");
|
Global.mDebugger.Send("But its already null again");
|
||||||
}
|
}
|
||||||
mTargetMAC = new MACAddress(RawData, 32);
|
mTargetMAC = new MACAddress(RawData, 32);
|
||||||
mTargetIP = new Address(RawData, 38);
|
mTargetIP = new Address(RawData, 38);
|
||||||
|
|
@ -219,7 +219,7 @@ namespace Cosmos.System.Network.ARP
|
||||||
{
|
{
|
||||||
if (SenderIP == null)
|
if (SenderIP == null)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("In ARPRequest_Ethernet, SenderIP is null!");
|
Global.mDebugger.Send("In ARPRequest_Ethernet, SenderIP is null!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ namespace Cosmos.System.Network.Config
|
||||||
{
|
{
|
||||||
var config = new IPConfig(ip, subnet, gw);
|
var config = new IPConfig(ip, subnet, gw);
|
||||||
NetworkStack.ConfigIP(device, config);
|
NetworkStack.ConfigIP(device, config);
|
||||||
NetworkStack.debugger.Send(config.ToString());
|
Global.mDebugger.Send("Config OK.");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -198,17 +198,17 @@ namespace Cosmos.System.Network.IPv4.UDP.DHCP
|
||||||
packet.Client.ToString() == null ||
|
packet.Client.ToString() == null ||
|
||||||
packet.Client.ToString() == null)
|
packet.Client.ToString() == null)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("Parsing DHCP ACK Packet failed, can't apply network configuration.");
|
Global.mDebugger.Send("Parsing DHCP ACK Packet failed, can't apply network configuration.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (message)
|
if (message)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("[DHCP ACK][" + networkDevice.Name + "] Packet received, applying IP configuration...");
|
Global.mDebugger.Send("[DHCP ACK][" + networkDevice.Name + "] Packet received, applying IP configuration...");
|
||||||
NetworkStack.debugger.Send(" IP Address : " + packet.Client.ToString());
|
Global.mDebugger.Send(" IP Address : " + packet.Client.ToString());
|
||||||
NetworkStack.debugger.Send(" Subnet mask : " + packet.Subnet.ToString());
|
Global.mDebugger.Send(" Subnet mask : " + packet.Subnet.ToString());
|
||||||
NetworkStack.debugger.Send(" Gateway : " + packet.Server.ToString());
|
Global.mDebugger.Send(" Gateway : " + packet.Server.ToString());
|
||||||
NetworkStack.debugger.Send(" DNS server : " + packet.DNS.ToString());
|
Global.mDebugger.Send(" DNS server : " + packet.DNS.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
IPConfig.Enable(networkDevice, packet.Client, packet.Subnet, packet.Server);
|
IPConfig.Enable(networkDevice, packet.Client, packet.Subnet, packet.Server);
|
||||||
|
|
@ -216,7 +216,7 @@ namespace Cosmos.System.Network.IPv4.UDP.DHCP
|
||||||
|
|
||||||
if (message)
|
if (message)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("[DHCP CONFIG][" + networkDevice.Name + "] IP configuration applied.");
|
Global.mDebugger.Send("[DHCP CONFIG][" + networkDevice.Name + "] IP configuration applied.");
|
||||||
asked = false;
|
asked = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -329,7 +329,7 @@ namespace Cosmos.System.Network.IPv4.UDP.DNS
|
||||||
|
|
||||||
if ((ushort)(DNSFlags & 0x0F) != (ushort)ReplyCode.OK)
|
if ((ushort)(DNSFlags & 0x0F) != (ushort)ReplyCode.OK)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("DNS Packet response not OK. Passing packet.");
|
Global.mDebugger.Send("DNS Packet response not OK. Passing packet.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ namespace Cosmos.System.Network.IPv4
|
||||||
/// <exception cref="ArgumentException">Thrown if packetData is invalid.</exception>
|
/// <exception cref="ArgumentException">Thrown if packetData is invalid.</exception>
|
||||||
internal static void ICMPHandler(byte[] packetData)
|
internal static void ICMPHandler(byte[] packetData)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("ICMP Handler called");
|
Global.mDebugger.Send("ICMP Handler called");
|
||||||
ICMPPacket icmp_packet = new ICMPPacket(packetData);
|
ICMPPacket icmp_packet = new ICMPPacket(packetData);
|
||||||
switch (icmp_packet.ICMP_Type)
|
switch (icmp_packet.ICMP_Type)
|
||||||
{
|
{
|
||||||
|
|
@ -47,12 +47,12 @@ namespace Cosmos.System.Network.IPv4
|
||||||
{
|
{
|
||||||
receiver.receiveData(icmp_packet);
|
receiver.receiveData(icmp_packet);
|
||||||
}
|
}
|
||||||
NetworkStack.debugger.Send("Received ICMP Echo reply from " + icmp_packet.SourceIP.ToString());
|
Global.mDebugger.Send("Received ICMP Echo reply from " + icmp_packet.SourceIP.ToString());
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
ICMPEchoRequest request = new ICMPEchoRequest(packetData);
|
ICMPEchoRequest request = new ICMPEchoRequest(packetData);
|
||||||
ICMPEchoReply reply = new ICMPEchoReply(request);
|
ICMPEchoReply reply = new ICMPEchoReply(request);
|
||||||
NetworkStack.debugger.Send("Sending ICMP Echo reply to " + reply.DestinationIP.ToString());
|
Global.mDebugger.Send("Sending ICMP Echo reply to " + reply.DestinationIP.ToString());
|
||||||
OutgoingBuffer.AddPacket(reply);
|
OutgoingBuffer.AddPacket(reply);
|
||||||
NetworkStack.Update();
|
NetworkStack.Update();
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ namespace Cosmos.System.Network.IPv4
|
||||||
//Sys.Console.WriteLine(ip_packet.ToString());
|
//Sys.Console.WriteLine(ip_packet.ToString());
|
||||||
if (ip_packet.SourceIP == null)
|
if (ip_packet.SourceIP == null)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("SourceIP null in IPv4Handler!");
|
Global.mDebugger.Send("SourceIP null in IPv4Handler!");
|
||||||
}
|
}
|
||||||
ARPCache.Update(ip_packet.SourceIP, ip_packet.SourceMAC);
|
ARPCache.Update(ip_packet.SourceIP, ip_packet.SourceMAC);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,7 @@ namespace Cosmos.System.Network.IPv4
|
||||||
|
|
||||||
if (second >= 4)
|
if (second >= 4)
|
||||||
{
|
{
|
||||||
NetworkStack.debugger.Send("No response in 4 secondes...");
|
Global.mDebugger.Send("No response in 4 secondes...");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ namespace Cosmos.System.Network.IPv4.UDP
|
||||||
{
|
{
|
||||||
UDPPacket udp_packet = new UDPPacket(packetData);
|
UDPPacket udp_packet = new UDPPacket(packetData);
|
||||||
|
|
||||||
NetworkStack.debugger.Send("[Received] UDP packet from " + udp_packet.SourceIP.ToString() + ":" + udp_packet.SourcePort.ToString());
|
Global.mDebugger.Send("[Received] UDP packet from " + udp_packet.SourceIP.ToString() + ":" + udp_packet.SourcePort.ToString());
|
||||||
|
|
||||||
if (udp_packet.SourcePort == 67)
|
if (udp_packet.SourcePort == 67)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
* Port of Cosmos Code.
|
* Port of Cosmos Code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define COSMOSDEBUG
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Cosmos.Debug.Kernel;
|
using Cosmos.Debug.Kernel;
|
||||||
|
|
@ -43,17 +45,6 @@ namespace Cosmos.System.Network
|
||||||
{
|
{
|
||||||
AddressMap = new TempDictionary<uint, NetworkDevice>();
|
AddressMap = new TempDictionary<uint, NetworkDevice>();
|
||||||
MACMap = new TempDictionary<uint, NetworkDevice>();
|
MACMap = new TempDictionary<uint, NetworkDevice>();
|
||||||
|
|
||||||
// VMT Scanner issue workaround
|
|
||||||
ARPPacket.VMTInclude();
|
|
||||||
ARPPacket_Ethernet.VMTInclude();
|
|
||||||
ARPReply_Ethernet.VMTInclude();
|
|
||||||
ARPRequest_Ethernet.VMTInclude();
|
|
||||||
ICMPPacket.VMTInclude();
|
|
||||||
ICMPEchoReply.VMTInclude();
|
|
||||||
ICMPEchoRequest.VMTInclude();
|
|
||||||
UDPPacket.VMTInclude();
|
|
||||||
//TCPPacket.VMTInclude();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -156,10 +147,10 @@ namespace Cosmos.System.Network
|
||||||
/// <exception cref="OverflowException">Thrown on fatal error (contact support).</exception>
|
/// <exception cref="OverflowException">Thrown on fatal error (contact support).</exception>
|
||||||
internal static void HandlePacket(byte[] packetData)
|
internal static void HandlePacket(byte[] packetData)
|
||||||
{
|
{
|
||||||
debugger.Send("Packet Received Length=" + packetData.Length.ToString());
|
Global.mDebugger.Send("Packet Received Length=" + packetData.Length.ToString());
|
||||||
if (packetData == null)
|
if (packetData == null)
|
||||||
{
|
{
|
||||||
debugger.Send("Error packet data null");
|
Global.mDebugger.Send("Error packet data null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue