All actions performed by nlrexecd are indicated by a unique service name. The service required is passed by name to nlrexecd after a TCP connection is established from the client.
The nlrexecd protocol describes only what occurs up until the service name and data are correctly specified, after that point the connection is ``taken over'' by that service.
Note that requiring the client to provide any service specific data is a violation of the spirit of separation between the service and the nlrexec layer. It was done entirely to simplify the job of the service module writer. There are several instances in which the service simply ignores this data. In any case, it may not be omitted by the client.