So I've started a 30 day challenge modeled after NanoWriMo where I attempt to write 5000 lloc without ai for one project in the month of November. The lines of code itself doesn't really matter its more about having a scary big number hanging over my head to keep me from wasting my free time.

Now we need to average 167 lines of code a day to hit the goal which didn't exactly happen today but I feel things will pick up as I get a better handle of what I'm doing. Worst case there's always Thanksgiving Break :/

So what actually is the project? Now its been a bit since I made some progress on it but I've been working on a userspace switch over the last few months to teach myself more about the linux networking internals. https://github.com/GraceM599/software-switch. Don't judge the code quality that's what this month is all about.
Running cloc --exclude-dir=build . gave me a starting point of 569 lines so by the end of the month the goal is to hit 5569 lines.

As for what I actually did today. I spent a few minutes figuring out what I had even been doing previously and one of the biggest limitations I identified is that there was no real testing of any features yet (easy free lines) and that the ring buffer IO implementation I did a few weeks ago was getting limited by the way I was polling (a singular while loop) that appeared to be causing bottlenecks when sending large loads of packets between hosts. Or at least that's what I think since there were messages about blocks not being available on host 1 and host 1 was sending packets to host 2 so yknow. So the solution I decided to go for was to give each port its own thread. Except going into threading blind was probably not the best idea so my first few attempts didn't work too well :D.

What I actually managed to complete today was adding a getter to view the state of the MAC table (for eventual testing) and splitting all the code I had clumped into my header files into having definitions in their respective .cpp files. I also gave each port its own thread which brought the throughput up about 25%. We got about 50 lines in today and the plan for tomorrow is to implement some basic tests then look into modifying the logging to work with Wireshark.

Anyway, thanks for reading! :>