summaryrefslogtreecommitdiff
path: root/node/Packet.hpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-09-25 15:57:43 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-09-25 15:57:43 -0700
commit9e186bbd89966d417dd960eff65a1971a2640020 (patch)
treebc912bbc01d291e3563f17fb311c421d243c1930 /node/Packet.hpp
parent050a0ce85dd548550001188a3c4d45d3163dff1d (diff)
downloadinfinitytier-9e186bbd89966d417dd960eff65a1971a2640020.tar.gz
infinitytier-9e186bbd89966d417dd960eff65a1971a2640020.zip
.
Diffstat (limited to 'node/Packet.hpp')
-rw-r--r--node/Packet.hpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/node/Packet.hpp b/node/Packet.hpp
index 214479d6..cfeb66f8 100644
--- a/node/Packet.hpp
+++ b/node/Packet.hpp
@@ -660,8 +660,8 @@ public:
VERB_NETWORK_CONFIG_REFRESH = 12,
/* Request endpoints for multicast distribution:
- * <[1] flags>
* <[8] 64-bit network ID>
+ * <[1] flags>
* <[6] MAC address of multicast group being queried>
* <[4] 32-bit ADI for multicast group being queried>
* <[4] 32-bit (suggested) max number of multicast peers desired or 0 for no limit>
@@ -683,6 +683,9 @@ public:
* <[2] 16-bit number of members enumerated in this packet>
* <[...] series of 5-byte ZeroTier addresses of enumerated members>
*
+ * If no endpoints are known, OK and ERROR are both optional. It's okay
+ * to return nothing in that case since gathering is "lazy."
+ *
* ERROR response payload:
* <[8] 64-bit network ID>
* <[6] MAC address of multicast group being queried>
@@ -696,6 +699,7 @@ public:
/* Multicast frame:
* <[8] 64-bit network ID>
* <[1] flags (currently unused, must be 0)>
+ * <[4] 32-bit (suggested) gather limit or 0 for no gathering>
* <[4] 32-bit multicast ADI (note that this is out of order here -- it precedes MAC)>
* <[6] destination MAC or all zero for destination node>
* <[6] source MAC or all zero for node of origin>
@@ -705,7 +709,16 @@ public:
* This is similar to EXT_FRAME but carries a multicast, and is sent
* out to recipients on a multicast list.
*
- * OK is not generated.
+ * (ADI precedes MAC here so that everything from destination MAC forward
+ * could be treated as a raw Ethernet frame.)
+ *
+ * OK response payload:
+ * <[1] flags>
+ * [... same as OK(GATHER) if flag 0x01 is set ...]
+ *
+ * Flags in OK are 0x01 for "gathering results returned," which can be
+ * sent if a gather limit is specified in the original FRAME and there
+ * are known endpoints to gather. This way frames can also gather.
*
* ERROR response payload:
* <[6] multicast group MAC>