Plumbed some holes in the ULE parser.

This commit is contained in:
feyris-tan 2025-07-25 21:34:22 +02:00
parent 0981ec5291
commit 49fa6790fa
4 changed files with 12 additions and 4 deletions

View File

@ -30,7 +30,7 @@ namespace skyscraper8.Ietf.Rfc4236_ULE
public override void Introduce(ProgramContext programContext) public override void Introduce(ProgramContext programContext)
{ {
throw new NotImplementedException();
} }
public void OnEthernetFrame(int pid, PhysicalAddress destination, PhysicalAddress source, ushort etherType, byte[] contents) public void OnEthernetFrame(int pid, PhysicalAddress destination, PhysicalAddress source, ushort etherType, byte[] contents)

View File

@ -40,7 +40,6 @@ namespace skyscraper5
private static void IntegrationTest() private static void IntegrationTest()
{ {
} }
static void Main(string[] args) static void Main(string[] args)

View File

@ -2,7 +2,7 @@
"profiles": { "profiles": {
"skyscraper8": { "skyscraper8": {
"commandName": "Project", "commandName": "Project",
"commandLineArgs": "file-live \"C:\\Temp\\sky-uk-000000.ts\"", "commandLineArgs": "\"Z:\\Freebies\\Datasets\\SkyscraperLibrarian\\DVB-S Juli 2025\\movistar-000000.ts\"",
"remoteDebugEnabled": false "remoteDebugEnabled": false
}, },
"Container (Dockerfile)": { "Container (Dockerfile)": {

View File

@ -1684,7 +1684,10 @@ namespace skyscraper5.Skyscraper.Scraper
IPAddress sourceAddress = new IPAddress(ipv6Stream.ReadBytes(16)); IPAddress sourceAddress = new IPAddress(ipv6Stream.ReadBytes(16));
IPAddress destinationAddress = new IPAddress(ipv6Stream.ReadBytes(16)); IPAddress destinationAddress = new IPAddress(ipv6Stream.ReadBytes(16));
InternetHeader ipv6Header = new InternetHeader(trafficClass, flowLabel, payloadLength, nextHeader, hopLimit, sourceAddress, destinationAddress); InternetHeader ipv6Header = new InternetHeader(trafficClass, flowLabel, payloadLength, nextHeader, hopLimit, sourceAddress, destinationAddress);
OnIpv4PacketArrival(ipv6Header, ipv6Stream.ReadBytes(payloadLength)); if (ipv6Stream.GetAvailableBytes() >= payloadLength)
{
OnIpv4PacketArrival(ipv6Header, ipv6Stream.ReadBytes(payloadLength));
}
return; return;
} }
else else
@ -2710,6 +2713,8 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnEthernetFrame(int pid, PhysicalAddress destination, PhysicalAddress source, ushort etherType, byte[] contents) public void OnEthernetFrame(int pid, PhysicalAddress destination, PhysicalAddress source, ushort etherType, byte[] contents)
{ {
if (Array.TrueForAll(contents, x => x == 0))
return;
if (etherType <= 1500) if (etherType <= 1500)
{ {
OnLlcFrame(etherType, contents); OnLlcFrame(etherType, contents);
@ -2724,6 +2729,10 @@ namespace skyscraper5.Skyscraper.Scraper
//This is related to G.9961, a PowerLine standard specified by ITU-T T-REC-G.9961 //This is related to G.9961, a PowerLine standard specified by ITU-T T-REC-G.9961
//I don't think we need this. //I don't think we need this.
return; return;
case 0x2f00:
//This is something proprietary.
//Quite possibly related to Extron hardware?
return;
case 0x0806: case 0x0806:
//This is an ARP Frame. We don't need it. //This is an ARP Frame. We don't need it.
return; return;