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)
{
throw new NotImplementedException();
}
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()
{
}
static void Main(string[] args)

View File

@ -2,7 +2,7 @@
"profiles": {
"skyscraper8": {
"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
},
"Container (Dockerfile)": {

View File

@ -1684,7 +1684,10 @@ namespace skyscraper5.Skyscraper.Scraper
IPAddress sourceAddress = new IPAddress(ipv6Stream.ReadBytes(16));
IPAddress destinationAddress = new IPAddress(ipv6Stream.ReadBytes(16));
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;
}
else
@ -2710,6 +2713,8 @@ namespace skyscraper5.Skyscraper.Scraper
public void OnEthernetFrame(int pid, PhysicalAddress destination, PhysicalAddress source, ushort etherType, byte[] contents)
{
if (Array.TrueForAll(contents, x => x == 0))
return;
if (etherType <= 1500)
{
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
//I don't think we need this.
return;
case 0x2f00:
//This is something proprietary.
//Quite possibly related to Extron hardware?
return;
case 0x0806:
//This is an ARP Frame. We don't need it.
return;