Condividi tramite


Indicazione delle modifiche ai parametri QoS NDIS remoti

Il driver miniport che supporta il servizio QoS (NDIS Quality of Service) genera un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE quando i parametri QoS NDIS remoti vengono ricevuti da un peer per la prima volta o modificare versioni successive. Il driver miniport riceve questi parametri QoS da un peer remoto tramite il protocollo IEEE 802.1Qaz Data Center Bridging Exchange (DCBX).

Il driver miniport deve seguire queste linee guida per l'emissione di un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE:

  • Se il driver miniport non ha ricevuto un frame DCBX da un peer remoto, non deve emettere un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.

  • Il driver miniport deve emettere un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE dopo aver ricevuto prima le impostazioni QoS da un peer remoto.

    Nota Il driver miniport deve emettere questa indicazione di stato se la scheda di rete riceve le impostazioni dei parametri QoS remote da un peer prima che i parametri QoS locali del driver siano impostati. Per altre informazioni, vedere Impostazione dei parametri QoS QoS locali.

  • Dopo questa indicazione di stato iniziale, il driver miniport deve emettere solo un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE quando determina una modifica nelle impostazioni QoS nel peer remoto.

    Nota I driver miniport non devono emettere un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE se non sono state apportate modifiche ai parametri QoS NDIS remoti. Se il driver effettua questo tipo di indicazione di stato, NDIS potrebbe non passare l'indicazione ai driver overlying.

Nota Il driver miniport deve emettere NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE indicazioni sullo stato se le relative funzionalità QoS NDIS sono attualmente abilitate. A partire da Windows Server 2012, queste indicazioni consentono agli amministratori di sistema di visualizzare le impostazioni QoS NDIS e Data Center Bridging (DCB) indipendentemente dal fatto che la funzionalità del server DCB Microsoft sia installata.

Linee guida per l'emissione dell'indicazione dello stato di NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE

Il driver miniport segue questi passaggi quando genera l'indicazione dello stato di NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE :

  1. Il driver miniport alloca un buffer sufficiente per contenere quanto segue:

    • Struttura NDIS_QOS_PARAMETERS che contiene le impostazioni di configurazione QoS NDIS e i parametri operativi globali per le classi di traffico QoS NDIS.

    • Matrice di strutture NDIS_QOS_CLASSIFICATION_ELEMENT . Ognuna di queste strutture specifica una classificazione del traffico definita da un modello di dati dei pacchetti (condizione) e un livello di priorità IEEE 802.1p associato (azione). Se la scheda di rete trova un modello nella trasmissione o in uscita, il pacchetto corrispondente a una condizione assegna il livello di priorità associato al pacchetto. L'adapter applica anche gli altri criteri QoS NDIS al pacchetto in base al livello di priorità.

  2. Il miniport inizializza la struttura NDIS_QOS_PARAMETERS con i parametri QoS NDIS remoti. Il driver deve fornire il set completo di parametri remoti ricevuti dal frame DCBX inviato dal peer remoto.

    Quando il driver miniport inizializza il membro Intestazione , imposta il membro Type di Intestazione su NDIS_OBJECT_TYPE_QOS_PARAMETERS. Il driver miniport imposta il membro Revision di Intestazione su NDIS_QOS_PARAMETERS_REVISION_1 e il membro Size su NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.

    Il driver miniport imposta i flag appropriati NDIS_QOS_PARAMETERS_Xxx_CHANGED se i membri corrispondenti contengono dati modificati dal driver miniport precedentemente emesso un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.

    Nota L'impostazione di questi flag NDIS_QOS_PARAMETERS_Xxx_CHANGED è facoltativa. NDIS presuppone sempre che i membri della NDIS_QOS_PARAMETERS siano specificati anche se non sono stati modificati dall'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE precedente.

    Il driver miniport imposta il membro Flags per specificare le informazioni sullo stato per i dati contenuti nei membri della struttura NDIS_QOS_PARAMETERS .

    Ad esempio, il driver miniport imposta i flag appropriati NDIS_QOS_PARAMETERS_Xxx_CHANGED nel membro Flags per i membri che contengono dati modificati dal driver miniport precedentemente emesso un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE .

    Per altre informazioni su come impostare il membro Flags, vedere Linee guida per l'impostazione del membro flag.

  3. Il driver miniport inizializza una struttura NDIS_QOS_CLASSIFICATION_ELEMENT per ogni classificazione del traffico dai parametri QoS NDIS remoti. Il driver aggiunge questi elementi oltre la fine della struttura NDIS_QOS_PARAMETERS nel buffer.

    Nota Il driver miniport non deve impostare il flag di NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT nel membro Flag di qualsiasi struttura NDIS_QOS_CLASSIFICATION_ELEMENT .

    Il driver imposta il membro NumClassificationElements della struttura NDIS_QOS_PARAMETERS sul numero di elementi di classificazione nella matrice. Il driver imposta il membro FirstClassificationElementOffset sull'offset byte del primo elemento dall'inizio del buffer. Il driver imposta anche il membro ClassificationElementSize sulla lunghezza, in byte, di ogni elemento nella matrice.

    Nota A partire da NDIS 6.30, il driver miniport deve impostare il membro ClassificationElementSize su sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT).

  4. Il driver miniport inizializza una struttura NDIS_STATUS_INDICATION per l'indicazione dello stato nel modo seguente:

    • Il membro StatusCode deve essere impostato su NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.

    • Il membro StatusBuffer deve essere impostato sul puntatore al buffer che contiene i parametri QoS NDIS remoti.

    • Il membro StatusBufferSize deve essere impostato sulla lunghezza, in byte, del buffer.

  5. Il driver miniport genera l'indicazione dello stato chiamando NdisMIndicateStatusEx. Il driver deve passare un puntatore alla struttura NDIS_STATUS_INDICATION al parametro StatusIndication .

Linee guida per l'impostazione del membro flag

Il driver miniport imposta i flag seguenti nel membro Flag della struttura NDIS_QOS_PARAMETERS per specificare quali parametri NDIS QoS operativi sono stati configurati o modificati nella scheda di rete:

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Se questo flag è impostato, il driver miniport ha configurato la scheda di rete con i parametri ETS contenuti nei membri seguenti:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

Nota Il driver miniport deve supportare ETS per supportare NDIS QoS per DCB. Tuttavia, l'impostazione di questo flag non specifica se la scheda di rete supporta ETS. L'impostazione di questo flag specifica invece solo se i parametri ETS sono configurati nella scheda di rete.

NDIS_QOS_PARAMETERS_ETS_CHANGED
Se questo flag è impostato, uno o più parametri ETS sono stati modificati nei membri seguenti:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Se questo flag è impostato, il driver miniport ha configurato la scheda di rete con le impostazioni PFC contenute nel membro PfcEnable .

Nota Il driver miniport deve supportare PFC per supportare NDIS QoS per DCB. L'impostazione di questo flag non specifica se la scheda di rete supporta PFC. L'impostazione di questo flag specifica invece solo se i parametri PFC sono abilitati nella scheda di rete.

NDIS_QOS_PARAMETERS_PFC_CHANGED
Se questo flag è impostato, una o più impostazioni PFC sono state modificate nel membro PfcEnable .

NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
Se questo flag è impostato, il driver miniport ha configurato la scheda di rete con i parametri di classificazione del traffico QoS specificati nei membri seguenti:

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
Se questo flag è impostato, uno o più parametri di classificazione del traffico QoS sono stati modificati nei membri seguenti:

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

Nota I flag NDIS_QOS_PARAMETERS_Xxx_CONFIGURED devono essere impostati se la struttura NDIS_QOS_PARAMETERS contiene le impostazioni dei parametri QoS NDIS. Il driver miniport deve impostare questi flag indipendentemente dal fatto che le impostazioni siano state modificate. Tuttavia, il driver deve impostare solo i flag NDIS_QOS_PARAMETERS_Xxx_CHANGED per le impostazioni modificate.

Linee guida per indicare parametri QoS QoS remoti non validi

Il driver miniport deve invalidare i parametri QoS remoti se le condizioni seguenti sono vere:

  • Il valore TTL (time-to-live) scade per i parametri QoS remoti.

    Nota DCBX viene eseguito il protocollo LLDP (Link Layer Discovery Protocol), come specificato nello standard IEEE 802.1AB-2005. I fotogrammi LLDP contengono sempre un campo TTL.

  • Un altro peer di collegamento dati invia un frame DCBX prima della scadenza del valore TTL. Questo scenario è noto come condizione multi-peer . DCBX richiede che il driver miniport mantenga solo un set di parametri QoS remoti ricevuti da un singolo peer di collegamento dati.

    Quando si verifica una condizione multi-peer, il driver miniport deve invalidare tutti i parametri QoS remoti fino alla scadenza del valore TTL per tutti i frame DCBX ricevuti.

Quando il driver miniport invalida i parametri QoS QoS remoti, è necessario seguire questa procedura quando genera l'indicazione dello stato di NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE :

  1. Poiché il driver miniport non segnala parametri QoS QoS validi, deve prima riempire una struttura NDIS_QOS_PARAMETERS con zero.

    Quando il driver miniport inizializza il membro Intestazione di questa struttura, imposta il membro Type di Intestazione su NDIS_OBJECT_TYPE_QOS_PARAMETERS. Il driver miniport imposta il membro Revision di Intestazione su NDIS_QOS_PARAMETERS_REVISION_1 e il membro Size su NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.

    Il driver miniport imposta i flag appropriati NDIS_QOS_PARAMETERS_Xxx_CHANGED nel membro Flags .

  2. Il driver miniport inizializza una struttura NDIS_STATUS_INDICATION per l'indicazione dello stato nel modo seguente:

    • Il membro StatusCode deve essere impostato su NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.

    • Il membro StatusBuffer deve essere impostato sull'indirizzo della struttura NDIS_QOS_PARAMETERS .

    • Il membro StatusBufferSize deve essere impostato su sizeof(NDIS_QOS_PARAMETERS).

  3. Il driver miniport rilascia l'indicazione di stato chiamando NdisMIndicateStatusEx. Il driver deve passare un puntatore alla struttura NDIS_STATUS_INDICATION al parametro StatusIndication .