1
0
mirror of https://github.com/XeonSquared/OC-Copper.git synced 2024-11-14 13:58:05 +11:00
Commit Graph

25 Commits

Author SHA1 Message Date
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