NDIS_STATUS_SWITCH_PORT_REMOVE_VF

NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시는 VM(가상 머신) 네트워크 어댑터와 PCI Express(PCIe) VF(가상 함수) 간의 바인딩을 제거하기 위해 Hyper-V 확장 가능 스위치 전달 확장에서 발생합니다. VF는 SR-IOV(단일 루트 I/O 가상화) 인터페이스를 지원하는 기본 물리적 네트워크 어댑터에서 노출되고 지원됩니다.

NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시를 실행하려면 전달 확장이 NDIS_SWITCH_NIC_STATUS_INDICATION 구조의 표시를 캡슐화하고 NDIS_STATUS_SWITCH_NIC_STATUS 상태 표시를 실행해야 합니다.

이 프로세스에 대한 자세한 내용은 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시 발급 지침을 참조하세요.

설명

PCIe VF는 SR-IOV 인터페이스를 지원하는 기본 물리적 어댑터에 의해 만들어지고 할당됩니다. 가상화 스택이 만들어지면 VF를 Hyper-V 자식 파티션에 연결하거나 할당합니다. 이 파티션에서 실행되는 게스트 운영 체제는 기본 SR-IOV 물리적 어댑터의 VF에 바인딩된 VM(가상 머신) 네트워크 어댑터를 노출합니다.

가상 및 물리적 네트워크 어댑터가 할당된 후 패킷은 VF와 VM 네트워크 어댑터 간에 직접 라우팅됩니다. 그러나 확장 가능한 스위치는 패킷 배달과 관련이 없으므로 확장 가능한 스위치 포트 정책은 이러한 패킷에 적용되지 않습니다. 여기에는 ACL(액세스 제어 목록) 및 QoS(서비스 품질)에 대한 포트 정책이 포함됩니다.

확장 가능한 스위치 전달 확장은 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시를 실행하여 자식 파티션에 대한 VF 할당을 제거할 수 있습니다. 이 표시를 사용하면 VM 네트워크 어댑터와 기본 SR-IOV 물리적 어댑터의 VF 간에 직접 전달되지 않고 확장 가능한 스위치 포트를 통해 패킷이 전달됩니다. 이렇게 하면 확장 가능한 스위치 포트를 통해 수신되거나 전송되는 패킷에 확장 가능한 스위치 포트 정책을 적용할 수 있습니다.

전달 확장에서 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시하면 VM 네트워크 어댑터가 연결된 확장 가능한 스위치 포트를 지정합니다.

확장 가능한 스위치 전달 확장에 대한 자세한 내용은 전달 확장을 참조하세요.

NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시 발급에 대한 지침

NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시를 실행하려면 전달 확장이 다음 단계를 수행해야 합니다.

  1. 전달 확장은 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 표시에 대한 NDIS_STATUS_INDICATION 구조를 초기화합니다. 이 표시의 경우 전달 확장은 NDIS_STATUS_INDICATION 구조체의 다음 멤버를 설정합니다.

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

    • StatusBuffer 멤버를NULL로 설정해야 합니다.

    • StatusBufferSize는 0으로 설정해야 합니다.

  2. 전달 확장은 NDIS_SWITCH_NIC_STATUS_INDICATION 구조를 초기화합니다. VF 할당을 제거하려면 전달 확장에서 다음과 같은 방법으로 멤버를 설정해야 합니다.

    • DestinationPortId 멤버는 VM 네트워크 어댑터가 연결된 확장 가능한 스위치 포트의 식별자로 설정해야 합니다.

    • DestinationNicIndex 멤버는 지정된 포트에 연결된 VM 네트워크 어댑터의 인덱스 값으로 설정해야 합니다.

    • SourcePortId 멤버는 NDIS_SWITCH_DEFAULT_PORT_ID 설정해야 합니다.

    • SourceNicIndex 멤버는 NDIS_SWITCH_DEFAULT_NIC_INDEX 설정해야 합니다.

    • StatusIndication 멤버는 NDIS_STATUS_SWITCH_PORT_REMOVE_VF표시를 위해 NDIS_STATUS_INDICATION 구조체의 주소로 설정해야 합니다.

  3. 전달 확장은 NDIS_SWITCH_NIC_STATUS_INDICATION 표시에 대한 NDIS_STATUS_INDICATION 구조를 초기화합니다. 이 표시의 경우 전달 확장은 NDIS_STATUS_INDICATION 구조체의 다음 멤버를 설정합니다.

  4. 전달 확장은 ReferenceSwitchNic 를 호출하여 VM 네트워크 어댑터에 대한 참조 카운터를 증가시켜야 합니다. ReferenceSwitchNic가 NDIS_STATUS_SUCCESS 완료되지 않으면 전달 확장이 상태 표시를 전달해서는 안 됩니다.

    참고 전달 확장이 VM 어댑터에 대한 OID_SWITCH_NIC_DISCONNECT 집합 요청을 받은 경우 ReferenceSwitchNic를 호출하거나 상태 표시를 전달해서는 안 됩니다.

  5. 전달 확장은 NdisFIndicateStatus 를 호출하여 확장 가능한 스위치 드라이버 스택의 오버레이 확장에 NDIS_STATUS_INDICATION 전달합니다. 전달 확장이 이 함수를 호출하면 StatusIndication 매개 변수를 NDIS_STATUS_SWITCH_NIC_STATUS표시의 NDIS_STATUS_INDICATION 구조체에 대한 포인터로 설정합니다.

  6. NdisFIndicateStatus가 반환된 후 전달 확장은 DereferenceSwitchNic를 호출하여 VM 네트워크 어댑터에 대한 참조 카운터를 감소시켜야 합니다.

참고 전달 확장은 전달 확장이 제거 중인 각 VF 할당에 대한 이전 단계를 따라야 합니다.

전달 확장이 상태 표시를 전달하는 방법에 대한 자세한 내용은 모듈 상태 표시 필터링을 참조하세요.

VF 할당을 결정하기 위한 지침

전달 확장은 OID_SWITCH_NIC_ARRAY OID 쿼리 요청을 실행하여 가상 네트워크 어댑터에 대한 현재 VF 할당을 열거할 수 있습니다. 이 요청은 NDIS_SWITCH_NIC_PARAMETERS 구조의 배열을 포함하는 NDIS_SWITCH_NIC_ARRAY 구조를 반환합니다. 각 NDIS_SWITCH_NIC_PARAMETERS 구조체는 다음 환경 중 하나에 노출되는 네트워크 어댑터의 매개 변수를 지정합니다.

  • Hyper-V 부모 파티션에서 실행되는 관리 운영 체제입니다.

    이 운영 체제에 노출되는 네트워크 어댑터는 NdisSwitchNicTypeExternal 또는 NdisSwitchNicTypeInternalNDIS_SWITCH_NIC_TYPE 열거형 값으로 지정됩니다.

  • Hyper-V 자식 파티션에서 실행되는 게스트 운영 체제입니다.

    이 운영 체제에 노출되는 네트워크 어댑터는 NdisSwitchNicTypeSynthetic 또는 NdisSwitchNicTypeEmulatedNDIS_SWITCH_NIC_TYPE 열거형 값으로 지정됩니다.

OID_SWITCH_NIC_ARRAY OID 쿼리 요청이 상태 NDIS_STATUS_SUCCESS 완료되면 전달 확장은 반환된 배열의 각 NDIS_SWITCH_NIC_PARAMETERS 구조를 검사하여 VF 할당을 확인할 수 있습니다. NDIS_SWITCH_NIC_PARAMETERS 구조체의 VFAssigned 멤버가 TRUE로 설정된 경우 NDIS_SWITCH_NIC_PARAMETERS 구조에 해당하는 네트워크 어댑터가 VF에 할당됩니다.

전달 확장은 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시를 실행하여 할당을 제거할 수 있습니다. 이 경우 전달 확장은 NDIS_SWITCH_NIC_STATUS_INDICATION DestinationPortId 멤버를 NDIS_SWITCH_NIC_PARAMETERS구조체PortId 멤버 값으로 설정해야 합니다.

NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시를 실행하는 방법에 대한 자세한 내용은 NDIS_STATUS_SWITCH_PORT_REMOVE_VF 상태 표시 발급 지침을 참조하세요.

요구 사항

Version

NDIS 6.30 이상에서 지원됩니다.

헤더

Ndis.h(Ndis.h 포함)

추가 정보


NdisFIndicateStatus

NDIS_STATUS_INDICATION

NDIS_STATUS_SWITCH_NIC_STATUS

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY