3.7.5.1 Receiving a QosInitializeSink Frame

When a sink receives a QosInitializeSink frame, it MUST first check that the Sequence Number field in the Base header is nonzero. If it is zero, the QosInitializeSink frame MUST be ignored. Then the sink MUST find a matching network test session that already exists in the sink's Session List. If one exists, it MUST immediately reply with a QosReady frame. Otherwise, processing continues as follows.

The Interrupt_Mod field in the QosInitializeSink header specifies the interrupt moderation mode for the session to be established. If the Interrupt_Mod field equals 0xFF, the sink need not take any action. Otherwise, if the Interrupt_Mod field equals 0x00, interrupt moderation is to be disabled on the network interface. If Current Interrupt Mod is not already set to InterruptModDisabled, the sink issues a request to the network interface to disable interrupt moderation. If the network interface does not support disabling, or fails to disable, interrupt moderation,  the sink MUST send a QosError frame with the Error Code value equal to 0x02. If interrupt moderation is successfully disabled, Current Interrupt Mod MUST be set to InterruptModDisabled.

If the sink is successful in processing the requested interrupt mode, then the sink MUST attempt to create a network test session and add it to the Session List. A sink MUST use the Real Source Address field in the Base header of the QosInitializeSink frame to identify the controller station. If a sink cannot support additional sessions, it MUST return a QosError frame with the Error Code value equal to 0x01. The Interrupt Mod field of the session table entry MUST be set to the Interrupt_Mod field of the QosInitializeSink frame to keep track of when the interrupt moderation mode is to be restored on session completion.

Otherwise, the sink MUST return a QosReady frame.

If the Inactivity timer has not already been started, it MUST be started as soon as the Session List is not empty.