Indicazione delle modifiche apportate ai parametri QoS NDIS remoti
Il driver miniport che supporta NDIS Quality of Service (QoS) genera un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE quando i suoi parametri QoS NDIS remoti vengono ricevuti per la prima volta da un peer o cambiano successivamente. 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 le seguenti 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 per la prima volta 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 remoti da un peer prima che vengano impostati i parametri QoS locali del driver. Per ulteriori informazioni, vedere "Impostazione dei parametri QoS locali NDIS".
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 delle impostazioni QoS nel peer remoto.
Nota i driver Miniport non devono fornire un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE se non sono state apportate modifiche ai parametri QoS NDIS remoti. Se il driver crea questo tipo di indicazione di stato, NDIS potrebbe non passare l'indicazione ai driver superiori.
Nota Il driver miniport deve emettere indicazioni sullo stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE se le 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 sia installata la funzionalità server DCB Microsoft.
Linee guida per l'emissione dell'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE
Il driver miniport segue questi passaggi quando emette l'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE:
Il driver miniport alloca un buffer sufficientemente grande da contenere quanto segue:
Struttura NDIS_QOS_PARAMETERS che contiene le impostazioni di configurazione QoS NDIS, nonché 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 dal livello di priorità IEEE 802.1p associato ('azione). Se l'adattatore di rete trova un modello nel pacchetto di trasmissione, o nel pacchetto in uscita , che corrisponde a una condizione, assegna il livello di priorità associato al pacchetto. L'adattatore applica anche gli altri criteri QoS NDIS al pacchetto in base al livello di priorità.
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 Header, imposta il membro Type di Header su NDIS_OBJECT_TYPE_QOS_PARAMETERS. Il driver miniport imposta il membro Revision di Header su NDIS_QOS_PARAMETERS_REVISION_1 e il membro Size su NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
Il driver miniport imposta i flag NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriati se i membri corrispondenti contengono dati che sono stati modificati dopo che il driver miniport ha precedentemente emesso un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.
Nota L'impostazione dei flag NDIS_QOS_PARAMETERS_Xxx_CHANGED è facoltativa. NDIS presuppone sempre che i membri del NDIS_QOS_PARAMETERS vengano specificati anche se non sono stati modificati rispetto all'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 strutturaNDIS_QOS_PARAMETERS.
Ad esempio, il driver miniport imposta i flag appropriati di NDIS_QOS_PARAMETERS_Xxx_CHANGED nel membro Flags per i membri che contengono dati che sono cambiati dopo che il driver miniport ha precedentemente emesso un'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE.
Per altre informazioni su come impostare il membro flag di, vedere linee guida per l'impostazione del Flag Membro.
Il driver miniport inizializza una struttura NDIS_QOS_CLASSIFICATION_ELEMENT per ciascuna classificazione del traffico basata sui parametri NDIS QoS remoti. Il driver aggiunge questi elementi appena oltre la fine della struttura NDIS_QOS_PARAMETERS nel buffer.
Nota Il driver miniport non deve impostare il flag NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT nel membro Flags di qualsiasi struttura NDIS_QOS_CLASSIFICATION_ELEMENT.
Il driver imposta il membro NumClassificationElements della struttura NDIS_QOS_PARAMETERS sul numero di elementi di classificazione nell'array. Il driver imposta il membro FirstClassificationElementOffset sull'offset in byte del primo elemento a partire dall'inizio del buffer. Il driver imposta anche il membro ClassificationElementSize 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
.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 su un puntatore al buffer che contiene i parametri QoS NDIS remoti.
Il membro StatusBufferSize deve essere impostato sulla lunghezza, espressa in byte, del buffer.
Il driver miniport rilascia l'indicazione di stato chiamando NdisMIndicateStatusEx. Il driver deve passare un puntatore alla struttura NDIS_STATUS_INDICATION al parametro StatusIndication.
Linee guida per l'impostazione del membro flags
Il driver miniport imposta i seguenti flag nel membro Flags della struttura NDIS_QOS_PARAMETERS per specificare quali parametri NDIS QoS operativi sono stati configurati o sono stati modificati sulla 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
TabellaDiAssegnazionePriorità
TcBandwidthAssignmentTable
TsaAssignmentTable
Nota Il driver miniport deve supportare ETS al fine di supportare la QoS NDIS 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
TabellaAssegnazionePriorità
TabellaAssegnazioneLarghezzaBandaTc
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 di 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 l'indicazione di parametri QoS NDIS remoti non validi
Il driver miniport deve invalidare i parametri QoS remoti se sono soddisfatte le condizioni seguenti:
Il valore TTL (Time-to-Live) scade per i parametri QoS remoti.
Nota DCBX viene trasportato sul protocollo LLDP (Link Layer Discovery Protocol) come specificato nello standard IEEE 802.1AB-2005. I frame 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 multiparte . DCBX richiede che il driver miniport mantenga un solo 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 fotogrammi DCBX ricevuti.
Quando il driver miniport invalida i parametri QoS NDIS remoti, deve seguire questi passaggi quando emette l'indicazione di stato NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE:
Poiché il driver miniport non segnala parametri QoS NDIS remoti validi, deve prima riempire una struttura NDIS_QOS_PARAMETERS con zeri.
Quando il driver miniport inizializza il membro Header di questa struttura, imposta il membro Type di Header su NDIS_OBJECT_TYPE_QOS_PARAMETERS. Il driver miniport imposta il membro Revisione di Header a NDIS_QOS_PARAMETERS_REVISION_1 e il membro Dimensione a NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
Il driver miniport imposta i flag NDIS_QOS_PARAMETERS_Xxx_CHANGED appropriati nel membro Flags.
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)
.
Il driver miniport rilascia l'indicazione di stato chiamando NdisMIndicateStatusEx. Il driver deve passare un puntatore alla struttura NDIS_STATUS_INDICATION al parametro StatusIndication.