pmlag

Poor man's link aggregation
git clone git://git.finwo.net/app/pmlag
Log | Files | Refs | LICENSE

DateCommit messageAuthorFiles+-
2026-07-10 23:42Project restart: reliable section reading from configfinwo35+225-1202
2023-10-14 17:58Remove multi-queue flagYersa Nordman1+1-1
2023-10-13 21:59Disable all features other than passing packetsYersa Nordman1+145-142
2023-10-13 21:33Re-add saddr_ll 'filter' for sendtoYersa Nordman1+18-3
2023-10-13 21:19Add forgotten return causing double receiveYersa Nordman1+1-0
2023-10-13 21:13Remove more log spamYersa Nordman1+0-1
2023-10-13 21:11Re-enable fast rt clearing ; reduce log spamYersa Nordman1+19-11
2023-10-13 21:05Removed extra comma after argument listYersa Nordman1+2-2
2023-10-13 21:02Showing which iface sent to for handle_packet_bondYersa Nordman1+23-0
2023-10-13 20:57Disabled fast routing-table purgingYersa Nordman1+9-9
2023-10-13 20:53Removed saddr_ll from sendto during broadcastYersa Nordman1+1-4
2023-10-13 20:48Added clarification on which sendto has issuesYersa Nordman1+3-0
2023-10-13 20:37Clear fast routing table entries after 6.4s instead of 400msYersa Nordman1+1-1
2023-10-13 20:27Fix brainfart packet interface detectionYersa Nordman1+1-1
2023-10-11 22:28Register bond interface with epoll as wellYersa Nordman2+16-2
2023-10-11 22:18Disable ifidx for bond to iface for nowYersa Nordman1+2-7
2023-10-11 22:07Removed unused variables and conflicting typesYersa Nordman2+4-6
2023-10-11 22:04Handled passing packets from bond to ifaceYersa Nordman3+44-24
2023-10-11 21:53Keeping track of routing table nowYersa Nordman3+125-116
2023-10-11 20:14Start of new link detectionYersa Nordman4+173-40
2023-10-10 22:22Initialize tap and routing-tableYersa Nordman6+124-68
2023-10-10 21:02Open interface sockets within loop, so I can close them to re-open if brokenYersa Nordman3+62-34
2023-10-08 20:11raw sockets opening again; ticking implementedYersa Nordman7+354-4
2023-10-08 19:05Code, basic config loading working againYersa Nordman17+84-865
2023-10-08 17:53Add envsubst to alpine builderYersa Nordman1+1-0
2023-10-08 17:51Add headers for compilationYersa Nordman1+5-4
2023-10-08 17:48Install expected non-busybox versions of utilsYersa Nordman1+2-0
2023-10-08 17:45Replace wget by curl in alpine builderYersa Nordman1+2-2
2023-10-08 17:44Added missing bash to alpineYersa Nordman1+1-0
2023-10-08 17:43Split install of dep between native and alpineYersa Nordman1+13-1
2023-10-08 17:38Install build-base on alpine to be able to compileYersa Nordman1+3-1
2023-10-08 17:37Fix missing sudo install within alpine partYersa Nordman2+2-2
2023-10-08 17:33Fix sudo requirement during alpine package installYersa Nordman1+2-2
2023-10-08 17:32Clarified workflow step names betterYersa Nordman1+4-4
2023-10-08 17:31Removed bash dependency in install-pkgYersa Nordman1+7-9
2023-10-08 17:27Another attempt at merging native and alpine buildersYersa Nordman1+21-13
2023-10-08 17:22More complete shell on linux-glibc-amd64 builderYersa Nordman1+2-2
2023-10-08 17:19Empty commit to trigger ciYersa Nordman0+0-0
2023-10-08 17:17Added jirutka/setup-alpine for building musl packagesYersa Nordman1+28-6
2023-10-07 21:23Add sudo for apt-get install in github-actionsYersa Nordman1+1-1
2023-10-07 21:22Install pandoc in github-actionsYersa Nordman2+38-0
2023-10-07 21:05Restructured building and CIYersa Nordman16+217-259
2023-10-07 19:28Compile static, so it works regardless of OSs libcYersa Nordman1+1-1
2023-10-07 18:46Whitespace changeYersa Nordman1+0-1
2023-03-22 19:11Save a memcmp call in rt_compareYersa Nordman1+9-2
2023-03-20 22:16Clean up some unused code commentsYersa Nordman1+9-73
2023-03-20 21:59Attempt at keeping ** in rt_entry instead of llistYersa Nordman3+50-41
2023-03-20 21:49Make the bond track how many interfaces it hasYersa Nordman2+2-0
2023-03-20 21:31Experiment: remove saddr from iface.cYersa Nordman1+1-4
2023-03-20 21:31Remove commented references to saddr_ll in bond.cYersa Nordman1+0-9
2023-03-20 21:26Remove saddr_ll reference to run experimentYersa Nordman1+1-1
2023-03-20 21:25Experiment sendto without saddr_llYersa Nordman1+8-6
2023-03-20 21:25Prevent rt_find call on broadcast packetsYersa Nordman1+4-2
2023-03-20 21:01Added debug print to detect if rt detects ifaceYersa Nordman1+4-0
2023-03-20 20:33Fix typo in makefileYersa Nordman1+1-1
2023-03-16 22:21Removed old compiled html fileYersa Nordman1+0-290
2023-03-16 22:19OpenWRT uses procd, not openrcYersa Nordman4+13-3
2023-03-16 22:05Added target reference to the readmeYersa Nordman1+5-1
2023-03-16 22:03Added support for openwrt structure in install scriptYersa Nordman2+38-14
2023-03-16 21:55Added openwrt-amd64 target in packagesYersa Nordman2+19-7
2023-03-16 21:34Add forgotten pipes to install.shYersa Nordman1+2-2
2023-03-16 21:31Added basic install scriptYersa Nordman2+27-0
2023-03-16 21:20Include openrc svc files in packageYersa Nordman4+29-4
2023-03-14 22:43Rename attach asset job to signify cross-compilation requirementYersa Nordman1+2-2
2023-03-14 22:40Empty commit to test overriding releasesYersa Nordman0+0-0
2023-03-14 22:38Use softprops' work instead of curling ourselvesYersa Nordman3+5-13
2023-03-14 22:33Not running all commands from yaml file for creating releasesYersa Nordman3+13-2
2023-03-14 22:29Use the original curl command as baseYersa Nordman1+1-1
2023-03-14 22:25Add token as bearer instead of get param againYersa Nordman1+1-1
2023-03-14 22:21Make curl run verbose so we can see what's going onYersa Nordman1+1-1
2023-03-14 22:19Run creation of release from tag without echoYersa Nordman1+1-1
2023-03-14 22:18Clean up command after echo shows it brokenYersa Nordman1+1-1
2023-03-14 22:16Attempt creating a release for a tag firstYersa Nordman1+2-1
2023-03-14 22:09Linted workflow yamlYersa Nordman1+6-7
2023-03-14 22:06Fix missing separation between curl argumentsYersa Nordman1+1-1
2023-03-14 22:02Ensure the whole curl command is executedYersa Nordman1+1-9
2023-03-14 22:01Make tag-assets workflow execute postYersa Nordman1+9-12
2023-03-14 21:58New workflow to add assets to tagsYersa Nordman1+31-0
2023-03-14 21:54Added makefile target to create packageYersa Nordman3+21-7
2023-03-14 21:35Added minimal compilation/installation docsYersa Nordman2+11-0
2023-03-14 21:24Renamed doc to docs directoryYersa Nordman3+0-0
2023-03-14 21:23Just host markdown as site for nowYersa Nordman14+28-1096
2023-03-14 21:13Emulate optional prefix on routes for github.ioYersa Nordman2+12-3
2023-03-14 21:02Testing routing after being built in ghaYersa Nordman10+54-21
2023-03-14 20:17typescript entryYersa Nordman4+579-46
2023-03-14 20:03Fix title in index.htmlYersa Nordman1+1-1
2023-03-14 19:59Made docs singular instead of plural in workflow yamlYersa Nordman1+1-1
2023-03-14 19:58Empty htmlYersa Nordman4+397-24
2023-03-14 19:53Output the raw main, not with quotes in npm startYersa Nordman1+1-1
2023-03-14 19:51Add package-lock so npm ci command worksYersa Nordman1+13-0
2023-03-14 19:49Test starting of the docs workflowYersa Nordman4+104-0
2023-03-13 22:57Added options section in manpage/readmeYersa Nordman4+95-21
2023-03-13 22:57Added install make targetYersa Nordman1+5-2
2023-03-13 22:40Add support for random and chosen hwaddr on the bondYersa Nordman4+42-20
2023-03-13 22:14Re-enable setting the mac address on the bondYersa Nordman1+17-14
2023-03-12 22:37Set iface to promiscuous mode for sockrawYersa Nordman1+76-57
2023-03-12 19:54Removed unused variable from rt_findYersa Nordman1+0-1
2023-03-09 22:43Limit routing table to RT_MAX_ENTRIES in sizeRobin Bron3+59-16
2023-03-09 21:34Make sure bcidx starts on a positive numberRobin Bron1+1-1
2023-03-09 21:32Track the bcidx and multiple interfaces per remote againRobin Bron2+29-33
2023-03-09 21:22Start separate thread for announcementsRobin Bron5+75-57
2023-03-09 21:20Print debug headers by compile definition, not commentingRobin Bron2+18-15
2023-03-08 20:38Made library usage legal regarding licensesRobin Bron4+372-16
2023-03-08 20:30Removed debug printf'sRobin Bron9+34-109
2023-03-08 20:15Fix segfault when selecting 0th interfaceRobin Bron1+1-1
2023-03-08 19:59Added rt_find and using the rt to select an ifaceRobin Bron4+101-52
2023-03-08 19:47Seed random at start of programRobin Bron1+7-0
2023-03-08 19:23Replaced tidwall/btree by finwo/mindexRobin Bron9+72-48
2023-03-04 22:54Mention dep in the readmeYersa Nordman2+18-0
2023-02-27 22:42More debug printsRobin Bron1+5-7
2023-02-27 22:27Fix mutex reference in routing-table.cRobin Bron2+2-2
2023-02-27 22:13Added debug print and assertRobin Bron1+7-0
2023-02-27 22:10Another debug printRobin Bron1+2-0
2023-02-27 22:06Added brackets around btree_get tmpRobin Bron1+1-1
2023-02-27 21:48More debug prints; explicitly set rt_entry values to nullRobin Bron1+12-6
2023-02-27 21:37Added debug prints to rtRobin Bron1+8-1
2023-02-27 21:22Track src mac addresses in routing table againRobin Bron6+102-109
2023-02-26 00:28Separate task_iface_onpacket methodRobin Bron2+29-40
2023-02-26 00:09Data being transferred through the bond againRobin Bron9+351-256
2023-02-25 22:56Added structure, back to bond thread initializationRobin Bron14+460-426
2023-02-25 22:55Allow compilation of nested src directoriesRobin Bron1+3-1
2023-02-23 21:49WIP: segfault in list iterationYersa Nordman2+65-25
2023-02-22 21:15Unlock the routing table as soon as possibleYersa Nordman1+1-2
2023-02-22 21:13Add forgotten unlock during sendYersa Nordman1+1-0
2023-02-22 20:47Send out through routing tableYersa Nordman1+38-8
2023-02-22 20:25Moved rt update to separate fn; track non-pmlag remotes as wellYersa Nordman1+79-75
2023-02-22 19:54bcidx should always be nonzeroYersa Nordman1+1-1
2023-02-22 19:53Track bcidx for mac addressYersa Nordman2+14-14
2023-02-21 22:24More debug prints throughout rt updateYersa Nordman1+4-0
2023-02-21 22:17Fix debug messages for routing table updatesYersa Nordman1+3-3
2023-02-21 22:11First routing table tracking attemptYersa Nordman5+103-11
2023-02-21 21:06Add missing license disclaimerYersa Nordman3+21-0
2023-02-20 19:40Probe floodingYersa Nordman2+55-4
2023-02-16 23:22Data to-and-fro single interfaceRobin Bron4+123-259
2023-02-16 23:08Compile with all debug symbols for nowRobin Bron1+1-1
2023-02-15 19:14Now 100% more random mac address on the tapYersa Nordman3+65-13
2023-02-15 17:59Successful sending from tap interfaceYersa Nordman3+38-41
2023-02-13 20:41Open file descriptors before starting bond/iface threadsYersa Nordman3+124-80
2023-02-12 22:58Use mutex instead of sleep to let iface threads wait for the tap to existRobin Bron2+27-16
2023-02-12 21:27Tap iface createdRobin Bron4+53-14
2023-02-12 20:37iface thread basicsRobin Bron1+217-172
2023-02-11 20:44Verified packet tx and rx over physical adaptersRobin Bron3+191-164
2023-02-07 23:18Added TODOs and thread creation for physical interfacesYersa Nordman3+43-6
2023-02-07 21:28Launching pthread per configured bondYersa Nordman3+28-23
2023-02-07 20:28Loading ini file now functionalYersa Nordman6+397-225
2023-02-06 23:05Functional hardcoded tx, functional raw ethdumpYersa Nordman1+238-0
2023-01-31 22:40Implemented basic argument parsingYersa Nordman3+33-3
2023-01-31 22:21Marked default as phony \& rendered manualsYersa Nordman4+207-1
2023-01-31 22:20Added license & basic make targets to build manualsYersa Nordman3+41-2
2023-01-31 22:15Added package manager & inih libYersa Nordman4+39-0
2023-01-31 22:01Project restartYersa Nordman17+2-794
2022-04-30 16:49Got iface threads to start and stop on commandRobin Bron5+167-49
2022-04-30 14:28Separated config loader from mainRobin Bron5+185-124
2022-04-30 01:45Implemented basic config loadingRobin Bron6+176-318
2022-04-30 00:35Fixed gitignore for manpageRobin Bron1+2-1
2022-04-30 00:33Initialized manpageRobin Bron9+665-72
2022-04-27 19:33Separated raw socket creation from mainRobin Bron3+75-29
2022-04-27 18:52Debug listening on named interfaceRobin Bron1+103-0
2022-04-27 16:32Project initRobin Bron5+35-0