diff --git a/FediChord.asn1 b/FediChord.asn1 index 79b894a..eb31730 100644 --- a/FediChord.asn1 +++ b/FediChord.asn1 @@ -6,7 +6,7 @@ Domain ::= VisibleString Partnum ::= INTEGER (0..150) -Action ::= ENUMERATED {queryID, join, leave, stabilise, ping} +Action ::= ENUMERATED {queryID, join, leave, stabilise, ping, queryLoad} Request ::= SEQUENCE { action Action, @@ -17,9 +17,10 @@ Request ::= SEQUENCE { actionPayload CHOICE { queryIDRequestPayload QueryIDRequestPayload, joinRequestPayload JoinRequestPayload, - leaveRequestPayload LeaveRequestPayload, - stabiliseRequestPayload StabiliseRequestPayload, - pingRequestPayload PingRequestPayload + leaveRequestPayload LeaveRequestPayload, + stabiliseRequestPayload StabiliseRequestPayload, + pingRequestPayload PingRequestPayload, + loadRequestPayload LoadRequestPayload } OPTIONAL -- just for symmetry reasons with response, requests without a payload have no meaning } @@ -34,11 +35,12 @@ Response ::= SEQUENCE { finalPart BOOLEAN, -- flag indicating this `part` to be the last of this response action Action, actionPayload CHOICE { - queryIDResponsePayload QueryIDResponsePayload, - joinResponsePayload JoinResponsePayload, + queryIDResponsePayload QueryIDResponsePayload, + joinResponsePayload JoinResponsePayload, leaveResponsePayload LeaveResponsePayload, stabiliseResponsePayload StabiliseResponsePayload, - pingResponsePayload PingResponsePayload + pingResponsePayload PingResponsePayload, + loadResponsePayload LoadResponsePayload } OPTIONAL -- no payload when just ACKing a previous request } @@ -101,5 +103,14 @@ PingRequestPayload ::= NULL -- do not include a node/ vserver ID, so that -- learning all active vserver IDs handled by the server at once PingResponsePayload ::= SEQUENCE OF NodeState +LoadRequestPayload ::= SEQUENCE { + lowerBound NodeID, + upperBound NodeID + } + +LoadResponsePayload ::= SEQUENCE { + loadSum REAL, + remainingLoadTarget REAL + } END