Commit Graph

42 Commits

Author SHA1 Message Date
20kdc b08c897cf8 Change hierarchi char from '<' to '^', fix some issues
This is kind of untested. I've asked Izaya to test it...
2017-09-02 14:51:34 +01:00
20kdc fe66493fd7 Remove weird random component from LKR cache tuning
It appears that (relib total attempt timer) / 2 is the best choice, since it leaves ample time to adapt to new routing graphs.
2017-08-16 23:29:40 +01:00
20kdc 3da01661ba Update culib.lua 2017-08-16 15:41:13 +01:00
20kdc de672239be Update protocol.0 2017-08-16 15:37:33 +01:00
20kdc 120934483c Fix error in protocol.2
Upcoming: protocol.0 MTU fix
2017-08-16 15:33:51 +01:00
20kdc 0eadc7fe86 Ok, hopefully this is 100% correct now (thanks Skye) 2017-08-14 12:31:14 +01:00
20kdc 80a5edc3e4 Merge pull request #2 from skyem123/occure_rc
Simple rc file for autostarting `occure` on OpenOS
2017-08-14 12:28:55 +01:00
20kdc 9b4d7b80b2 Make license more contribution-friendly 2017-08-14 12:28:04 +01:00
Skye 84bd8874ff Simple rc file for autostarting `occure` on OpenOS
Basic testing shows that this works, and this seems to be the official way to get programs started at boot on OpenOS.
2017-08-14 11:59:29 +01:00
20kdc effb6459a5 Make the network stack slightly smaller and add a generated "just the network stack" output file. 2017-04-04 17:41:52 +01:00
gamemanj f6387530a4 OC Internet Card transport and a LuaSocket server for it. 2017-03-28 14:23:30 +01:00
gamemanj d18c935db2 Fix bug in cdlib where names could be accepted yet truncated. 2017-03-28 10:30:01 +01:00
gamemanj 82903d3655 Move test files into their own folder 2017-03-28 09:02:05 +01:00
20kdc 30849ec199 Fix inverted RS signal
how do I make mistakes in a row like this???
2017-03-25 11:36:21 +00:00
20kdc e582a8e7ce Fix stupid mistake when updating rsctl. 2017-03-25 11:30:57 +00:00
20kdc bb8671c202 Update IoT protocol for P9K-friendliness 2017-03-25 10:58:44 +00:00
20kdc 2cd85360c6 OC Hierarchial Gateway fix 2017-03-25 10:51:50 +00:00
20kdc 65f896b291 Store hostname of EEPROM light-nodes as the EEPROM label. 2017-03-23 17:51:54 +00:00
20kdc 0767092660 IoT spec change: Add the possibility of systems which treat different sources differently.
This is useful for, as an example, actions which require multiple parameters.
A guarantee by the specific device that the variables are "local" ensures that
 no race conditions occur, assuming the node isn't running two programs
 accessing the same device (which should not be true on the basis that OC is
 not generally a multitasking system)
2017-03-23 16:38:38 +00:00
20kdc b26a48165d Added a system for building 'light nodes' with minified OC-specific source.
The light node system should only be used where necessary, as light
 nodes contribute absolutely nothing to network messaging.

Maybe a minified full port of culib could be made for a "medium node",
 which would be (protocol behavior-wise) exactly like normal nodes,
 but minified and with interfaces cut down internally.
2017-03-23 01:17:57 +00:00
20kdc 7f9623ddbd A few adjustments to culib, a fix to relib, and adding a few missing things 2017-03-23 01:11:37 +00:00
20kdc 2c13ad9469 Move workspace forward to include some applications & application protocol documents 2017-03-22 23:05:31 +00:00
20kdc bf3ec0ec26 Those changes lost in the midst of testing. 2017-03-21 12:50:23 +00:00
20kdc eeb01821c3 Fix the hierarchial gateway and make the OC/CU/RE driver more resilient 2017-03-20 22:58:05 +00:00
20kdc 9df9823a4f Clarify possibilities of interaction between broadcast packets and hierarchial gateways.
The implementation in the oc/ subfolder of a hierarchial gateway goes
with the "allow subnets to cause higher-level broadcasts, and allow
 higher levels to cause subnet broadcasts, but don't let messages leak"
 solution
That is, the default if hierarchial gateways have no special
 handling for broadcast addresses.
2017-03-20 16:20:52 +00:00
20kdc 8e8b3f650d Make relib relatively backend-independent, increase the max timers to 0x400.
relib now relies on an additional parameter which should be
 require("culib"), but could instead be a Copper-like library.
2017-03-20 16:14:36 +00:00
20kdc 4a4cd485b1 Add an (as of yet untested) OC implementation of a Hierarchial Gateway 2017-03-20 00:40:28 +00:00
20kdc c91f3bd2a9 Be more explicit in protocol.1 about packet alterations, add license header to occure.lua 2017-03-20 00:33:06 +00:00
20kdc a998d3412c Clean up and add anti-OOM safety to culib, split data encode/decode to cdlib 2017-03-20 00:14:56 +00:00
20kdc 880a4dff08 Adjust the tuning parameters for real-world usage.
The tests assume a mesh network with known connections, the node doesn't,
 so unneeded packet leakage isn't really as controllable as I'd hoped.

What's definitely important is that the system doesn't cache entries for
 long enough that it starts continuously sending packets the wrong way
 no matter what.
2017-03-19 21:54:57 +00:00
20kdc 7f2d0c99a7 Uh, actually fix the stupid bug (How did this not get added again?) 2017-03-19 21:43:40 +00:00
20kdc 3f77445da7 Fix stupid bug in relib 2017-03-19 21:41:55 +00:00
20kdc 1cd7d82e98 Relib bugfixes
Hopefully should just be in general *better* now
2017-03-18 21:44:50 +00:00
20kdc 3497708747 Add occure 2017-03-18 21:21:27 +00:00
gamemanj c5f174e6ed Fixes to RELib.
It should work now.
2017-03-18 18:30:14 +00:00
gamemanj b5013044f6 Broadcast Address support. 2017-03-18 16:12:31 +00:00
gamemanj d63ba8db06 Hopefully maybe implement the reliability layer. 2017-03-18 16:06:56 +00:00
gamemanj aabbb554c6 Remove the fragmentation part of the reliablility layer
In practice it is unlikely that data that's too big for the reliability layer won't need splitting
 anyway by the application at some point, and the libraries are already too open to OOM DoS.
2017-03-18 15:31:25 +00:00
gamemanj e77c203514 Write docs on a possible broadcast extension and tune culib.lua some more. 2017-03-18 13:33:26 +00:00
gamemanj 47ec74bc89 Lowered protocol packet size limit and changed how it's calculated, also changed testcase to be slightly less worst-case.
The previous testcase was "all nodes communicating randomly", basically a worst-case.
This testcase is somewhat more realistic, a set of nodes communicating between each other via other
 nodes, a given TO node recurring once every 5 seconds (approximately).
Notably, the 'packet transfer total' figure should be halved, as in the testcase pings and responses
 are used, but only responses are counted.
2017-03-18 12:28:46 +00:00
gamemanj 97fd892922 Set up a proper test of a simple Copper network.
The reliability layer isn't in use here, as it will be tested separately.
I need to adjust the base Copper protocol first.
2017-03-18 11:32:14 +00:00
20kdc 2b458b5df8 Add incomplete workspace, for now. 2017-03-18 09:37:56 +00:00