Make task ID unique
When clients attach to ACNET, they're assigned a task ID. These task IDs are unique to the task pool with which the client is associated. This issue tracks effort to make the task ID unique in
acnetd. This has several effects:
- Charlie recently expanded the number of tasks that
acnetdsupports. The task ID field in the ACNET header was, fortuitously, 16 bits and the upper byte wasn't being used. This means each virtual node doesn't have to reuse the task IDs between 0 and 255.
- Looking up a client is simpler since the task ID would index into a global client data structure. Currently it has to find the task pool associated with the client's virtual node and then index to the clients information.
- The command structures, used to communicate locally with
acnetd, don't require the client to provide the same information over and over again. Just the task ID is enough.
- Shrinking the common header for commands re-aligns the rest of the command to 4-byte boundaries, which will slightly improve performance.