다음을 통해 공유


원격 NDIS QoS 매개 변수 변경 내용 표시

NDIS QoS(서비스 품질)를 지원하는 미니포트 드라이버는 원격 NDIS QoS 매개 변수가 피어에서 처음 수신되거나 나중에 변경될 때 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행합니다. 미니포트 드라이버는 IEEE 802.1Qaz DCBX(Data Center Bridging Exchange) 프로토콜을 통해 원격 피어에서 이러한 QoS 매개 변수를 받습니다.

미니포트 드라이버는 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행하기 위해 다음 지침을 따라야 합니다.

  • 미니포트 드라이버가 원격 피어에서 DCBX 프레임을 받지 못한 경우 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행해서는 안 됩니다.

  • 미니포트 드라이버는 원격 피어에서 QoS 설정을 처음 받은 후 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행해야 합니다.

    참고 미니포트 드라이버는 드라이버의 로컬 QoS 매개 변수가 설정되기 전에 네트워크 어댑터가 피어에서 원격 QoS 매개 변수 설정을 받는지 상태 표시를 실행해야 합니다. 자세한 내용은 로컬 NDIS QoS 매개 변수 설정을 참조하세요.

  • 이 초기 상태 표시 후 미니포트 드라이버는 원격 피어의 QoS 설정 변경을 결정할 때만 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행해야 합니다.

    참고 미니포트 드라이버는 원격 NDIS QoS 매개 변수를 변경하지 않은 경우 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행해서는 안 됩니다. 드라이버가 이러한 유형의 상태 표시를 수행하는 경우 NDIS는 지나치게 많은 드라이버에 표시를 전달하지 않을 수 있습니다.

참고 미니포트 드라이버는 NDIS QoS 기능이 현재 사용하도록 설정된 경우 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행해야 합니다. Windows Server 2012 이러한 표시를 통해 시스템 관리자는 Microsoft DCB 서버 기능이 설치되었는지 여부에 관계없이 NDIS QoS 및 DCB(데이터 센터 브리징) 설정을 볼 수 있습니다.

NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 발급하기 위한 지침

미니포트 드라이버는 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 발급할 때 다음 단계를 수행합니다.

  1. 미니포트 드라이버는 다음을 포함할 수 있을 만큼 큰 버퍼를 할당합니다.

    • NDIS QoS 구성 설정과 NDIS QoS 트래픽 클래스에 대한 전역 운영 매개 변수를 포함하는 NDIS_QOS_PARAMETERS 구조체 입니다.

    • NDIS_QOS_CLASSIFICATION_ELEMENT 구조체의 배열입니다. 이러한 각 구조는 패킷 데이터 패턴(조건) 및 연결된 IEEE 802.1p 우선 순위 수준(작업)에 정의된 트래픽 분류를 지정합니다. 네트워크 어댑터가 조건과 일치하는 전송 또는 송신 패킷에서 패턴을 찾으면 연결된 우선 순위 수준을 패킷에 할당합니다. 또한 어댑터는 우선 순위 수준에 따라 패킷에 다른 NDIS QoS 정책을 적용합니다.

  2. 미니포트는 원격 NDIS QoS 매개 변수를 사용하여 NDIS_QOS_PARAMETERS 구조를 초기화합니다. 드라이버는 원격 피어에서 보낸 DCBX 프레임에서 받은 전체 원격 매개 변수 집합을 제공해야 합니다.

    미니포트 드라이버가 Header 멤버를 초기화하면 HeaderType 멤버를 NDIS_OBJECT_TYPE_QOS_PARAMETERS 설정합니다. 미니포트 드라이버는 Header수정 버전 멤버를 NDIS_QOS_PARAMETERS_REVISION_1, Size 멤버를 NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1 설정합니다.

    미니포트 드라이버는 미니포트 드라이버가 이전에 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행한 이후 변경된 데이터가 해당 멤버에 포함된 경우 적절한 NDIS_QOS_PARAMETERS_Xxx_CHANGED 플래그를 설정합니다.

    참고 이러한 NDIS_QOS_PARAMETERS_Xxx_CHANGED 플래그를 설정하는 것은 선택 사항입니다. NDIS는 항상 이전 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시에서 변경되지 않은 경우에도 NDIS_QOS_PARAMETERS 멤버가 지정되었다고 가정합니다.

    미니포트 드라이버는 Flags 멤버를 설정하여 NDIS_QOS_PARAMETERS 구조체 멤버에 포함된 데이터에 대한 상태 정보를 지정합니다.

    예를 들어 미니포트 드라이버는 이전에 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 실행한 이후 변경된 데이터를 포함하는 멤버에 대해 Flags 멤버에 적절한 NDIS_QOS_PARAMETERS_Xxx_CHANGED 플래그를 설정합니다.

    Flags 멤버를 설정하는 방법에 대한 자세한 내용은 Flags 멤버 설정 지침을 참조하세요.

  3. 미니포트 드라이버는 원격 NDIS QoS 매개 변수에서 각 트래픽 분류에 대한 NDIS_QOS_CLASSIFICATION_ELEMENT 구조를 초기화합니다. 드라이버는 버퍼에서 NDIS_QOS_PARAMETERS 구조의 끝을 지나 이러한 요소를 추가합니다.

    참고 미니포트 드라이버는 NDIS_QOS_CLASSIFICATION_ELEMENT 구조체의 Flags 멤버에서 NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT 플래그를 설정해서는 안됩니다.

    드라이버는 NDIS_QOS_PARAMETERS 구조체의 NumClassificationElements 멤버를 배열의 분류 요소 수로 설정합니다. 드라이버는 FirstClassificationElementOffset 멤버를 버퍼 시작부터 첫 번째 요소의 바이트 오프셋으로 설정합니다. 또한 드라이버는 ClassificationElementSize 멤버를 배열에 있는 각 요소의 길이(바이트)로 설정합니다.

    참고 NDIS 6.30부터 미니포트 드라이버는 ClassificationElementSize 멤버 sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT를 로 설정해야 합니다.

  4. 미니포트 드라이버는 다음과 같은 방법으로 상태 표시에 대한 NDIS_STATUS_INDICATION 구조를 초기화합니다.

    • StatusCode 멤버는 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 설정해야 합니다.

    • StatusBuffer 멤버는 원격 NDIS QoS 매개 변수가 포함된 버퍼에 대한 포인터로 설정해야 합니다.

    • StatusBufferSize 멤버는 버퍼의 길이(바이트)로 설정해야 합니다.

  5. 미니포트 드라이버는 NdisMIndicateStatusEx를 호출하여 상태 표시를 발급합니다. 드라이버는 NDIS_STATUS_INDICATION 구조체에 대한 포인터를 StatusIndication 매개 변수에 전달해야 합니다.

Flags 멤버 설정 지침

미니포트 드라이버는 NDIS_QOS_PARAMETERS 구조의 Flags 멤버에 다음 플래그를 설정하여 네트워크 어댑터에서 구성되거나 변경된 운영 NDIS QoS 매개 변수를 지정합니다.

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
이 플래그가 설정된 경우 미니포트 드라이버는 다음 멤버에 포함된 ETS 매개 변수를 사용하여 네트워크 어댑터를 구성했습니다.

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

참고 미니포트 드라이버는 DCB용 NDIS QoS를 지원하려면 ETS를 지원해야 합니다. 그러나 이 플래그의 설정은 네트워크 어댑터가 ETS를 지원하는지 여부를 지정하지 않습니다. 대신 이 플래그의 설정은 ETS 매개 변수가 네트워크 어댑터에 구성되어 있는지 여부만 지정합니다.

NDIS_QOS_PARAMETERS_ETS_CHANGED
이 플래그가 설정된 경우 다음 멤버에서 하나 이상의 ETS 매개 변수가 변경되었습니다.

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
이 플래그가 설정된 경우 미니포트 드라이버는 PfcEnable 멤버에 포함된 PFC 설정을 사용하여 네트워크 어댑터를 구성했습니다.

참고 미니포트 드라이버는 DCB용 NDIS QoS를 지원하려면 PFC를 지원해야 합니다. 이 플래그의 설정은 네트워크 어댑터가 PFC를 지원하는지 여부를 지정하지 않습니다. 대신 이 플래그의 설정은 네트워크 어댑터에서 PFC 매개 변수를 사용할 수 있는지 여부만 지정합니다.

NDIS_QOS_PARAMETERS_PFC_CHANGED
이 플래그가 설정된 경우 PfcEnable 멤버에서 하나 이상의 PFC 설정이 변경되었습니다.

NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
이 플래그가 설정된 경우 미니포트 드라이버는 다음 멤버에 지정된 QoS 트래픽 분류 매개 변수를 사용하여 네트워크 어댑터를 구성했습니다.

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
이 플래그가 설정된 경우 다음 멤버에서 하나 이상의 QoS 트래픽 분류 매개 변수가 변경되었습니다.

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

참고 NDIS_QOS_PARAMETERS 구조에 NDIS QoS 매개 변수 설정이 포함된 경우 NDIS_QOS_PARAMETERS_Xxx_CONFIGURED 플래그를 설정해야 합니다. 미니포트 드라이버는 설정이 변경되었는지 여부에 관계없이 이러한 플래그를 설정해야 합니다. 그러나 드라이버는 변경된 설정에 대해 NDIS_QOS_PARAMETERS_Xxx_CHANGED 플래그만 설정해야 합니다.

잘못된 원격 NDIS QoS 매개 변수를 나타내는 지침

다음 조건이 충족되면 미니포트 드라이버는 원격 QoS 매개 변수를 무효화해야 합니다.

  • TTL(Time to Live) 값은 원격 QoS 매개 변수에 대해 만료됩니다.

    참고 DCBX는 IEEE 802.1AB-2005 표준에 지정된 대로 LLDP(링크 계층 검색 프로토콜) 프로토콜을 통해 전달됩니다. LLDP 프레임에는 항상 TTL 필드가 포함됩니다.

  • 다른 데이터 링크 피어는 TTL 값이 만료되기 전에 DCBX 프레임을 보냅니다. 이 시나리오를 다중 피어 조건이라고 합니다. DCBX를 사용하려면 미니포트 드라이버가 단일 데이터 링크 피어에서 받은 원격 QoS 매개 변수 집합을 하나만 유지 관리해야 합니다.

    다중 피어 조건이 발생하면 미니포트 드라이버는 수신된 모든 DCBX 프레임에 대해 TTL 값이 만료될 때까지 모든 원격 QoS 매개 변수를 무효화해야 합니다.

미니포트 드라이버가 원격 NDIS QoS 매개 변수를 무효화하는 경우 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 상태 표시를 발급할 때 다음 단계를 따라야 합니다.

  1. 미니포트 드라이버는 유효한 원격 NDIS QoS 매개 변수를 보고하지 않으므로 먼저 NDIS_QOS_PARAMETERS 구조를 0으로 채워야 합니다.

    미니포트 드라이버는 이 구조체의 Header 멤버를 초기화할 때 HeaderType 멤버를 NDIS_OBJECT_TYPE_QOS_PARAMETERS 설정합니다. 미니포트 드라이버는 Header수정 버전 멤버를 NDIS_QOS_PARAMETERS_REVISION_1, Size 멤버를 NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1 설정합니다.

    미니포트 드라이버는 Flags 멤버에 적절한 NDIS_QOS_PARAMETERS_Xxx_CHANGED 플래그를 설정합니다.

  2. 미니포트 드라이버는 다음과 같은 방법으로 상태 표시에 대한 NDIS_STATUS_INDICATION 구조를 초기화합니다.

    • StatusCode 멤버는 NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE 설정해야 합니다.

    • StatusBuffer 멤버를 NDIS_QOS_PARAMETERS 구조체의 주소로 설정해야 합니다.

    • StatusBufferSize 멤버를 로 설정sizeof(NDIS_QOS_PARAMETERS)해야 합니다.

  3. 미니포트 드라이버는 NdisMIndicateStatusEx를 호출하여 상태 표시를 발급합니다. 드라이버는 NDIS_STATUS_INDICATION 구조체에 대한 포인터를 StatusIndication 매개 변수에 전달해야 합니다.