Hi Mikkel, Answers inline
On Mon, Jan 11, 2021 at 3:19 PM Mikkel Fahnøe Jørgensen <[email protected]> wrote: > I’m trying to read through the LB document that I haven’t looked at for > quite a while. It isn’t very clear to me, I am sorry to say. > > I do not understand why the highest configuration value is chosen since > this value would eventually wrap? Is there an implied wider config value > where only the lower bits are visible, similar to packet numbers? > In general, client-generated CIDs might come in with config rotation bits that don't correspond to an existing config. For the other algorithms, it's randomly routed and after that the server-generated CID is used. But for this algorithm, the server needs to extract a server ID somehow. If there's one configuration, that's simple. If there's more than one, there has to be deterministic behavior. The choice to use the highest is completely arbitrary; I'm open to other suggestions that have better properties. > Also, I do not understand how the server receives the assigned SID. Is the > ODCID replaced in first packets, or are the packets unmodified, or is the > SID prefixed the real packet? > No, any 8-byte CID will contain a server ID. So the client, in effect, generates an SID and the load balancer decides which server will get it (and then use that SID in the future) > If the ODCID is modified, what about message authentication, also in > future versions and with possible shared keys? > It is not modified, see above Is the state table affected by the clients choice of ODCID (think abuse)? > Yes, if CIDs are chosen to maximize the number of different SIDs, that will grow the table. IMO this isn't substantially different from randomly chosen CIDs, which is of course normal behavior.
