VPort(가상 포트)

VPort(가상 포트)는 SR-IOV(단일 루트 I/O 가상화)를 지원하는 네트워크 어댑터의 NIC 스위치에 있는 내부 포트를 나타내는 데이터 개체입니다. 각 NIC 스위치에는 네트워크 연결을 위한 다음 포트가 있습니다.

  • 외부 물리적 네트워크에 연결하기 위한 하나의 외부 물리적 포트입니다.

  • PCI PF(Express Physical Function) 또는 VF(가상 함수)에 연결된 하나 이상의 내부 VPort입니다.

    PF는 Hyper-V 부모 파티션에 연결되며 해당 파티션에서 실행되는 관리 운영 체제에서 가상 네트워크 어댑터로 노출됩니다.

    VF는 Hyper-V 자식 파티션에 연결되며 해당 파티션에서 실행되는 게스트 운영 체제에서 가상 네트워크 어댑터로 노출됩니다.

NIC 스위치는 네트워크 트래픽을 물리적 포트에서 하나 이상의 VPort로 연결합니다. 이렇게 하면 기본 물리적 네트워크 인터페이스에 대한 가상화된 액세스 권한이 제공됩니다.

각 VPort에는 네트워크 어댑터의 NIC 스위치에 대해 고유한 고유 식별자(VPortId)가 있습니다. 기본 VPort는 항상 기본 NIC 스위치에 존재하며 삭제할 수 없습니다. 기본 VPort에는 NDIS_DEFAULT_VPORT_ID VPortId가 있습니다.

PF 미니포트 드라이버가 OID_NIC_SWITCH_CREATE_SWITCH OID(개체 식별자) 메서드 요청을 처리하면 해당 스위치에 대한 NIC 스위치와 기본 VPort가 만들어집니다. 기본 VPort는 항상 PF에 연결되며 항상 작동 상태입니다.

기본이 아닌 VPort는 OID_NIC_SWITCH_CREATE_VPORT OID 메서드 요청을 통해 만들어집니다. 기본이 아닌 VPort 하나만 VF에 연결할 수 있습니다. 연결되면 기본값은 작동 상태입니다. 하나 이상의 기본이 아닌 VPort를 만들어 PF에 연결할 수도 있습니다. 이러한 VPort는 만들 때 비 운용성이며 OID_NIC_SWITCH_VPORT_PARAMETERS OID 집합 요청을 통해 작동할 수 있습니다.

참고

VPort가 작동되면 OID_NIC_SWITCH_DELETE_VPORT OID 요청을 통해 삭제될 때만 비 운용성 상태가 될 수 있습니다.

각 VPort에는 패킷 수신 및 전송을 위해 하나 이상의 하드웨어 큐 쌍이 연결되어 있습니다. 네트워크 어댑터의 기본 큐 쌍은 기본 VPort에서 사용하도록 예약되어 있습니다. 기본이 아닌 VPort에 대한 큐 쌍은 OID_NIC_SWITCH_CREATE_VPORT 요청을 통해 VPort를 만들 때 할당되고 할당됩니다.

기본이 아닌 VPort는 OID_NIC_SWITCH_CREATE_VPORT OID 메서드 요청을 통해 만들어지고 구성됩니다. 기본 VPort 및 기본이 아닌 VPort는 OID_NIC_SWITCH_VPORT_PARAMETERS OID 집합 요청을 통해 다시 구성됩니다. 각 OID 요청에는 다음 구성 매개 변수를 지정하는 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조가 포함되어 있습니다.

  • VPort가 연결된 PCIe 함수입니다.

    각 VPort는 언제든지 PF 또는 VF에 연결할 수 있습니다. VPort를 만들고 PCIe 함수에 연결한 후에는 첨부 파일을 다른 PCIe 함수로 동적으로 변경할 수 없습니다.

    참고

    기본 VPort는 항상 네트워크 어댑터의 PF에 연결됩니다.

Windows Server 2012 NDIS 6.30부터는 기본이 아닌 VPort 하나만 VF에 연결할 수 있습니다. 그러나 기본 VPort와 함께 여러 비기본 VPort를 PF에 연결할 수 있습니다.

  • VPort에 할당된 하드웨어 큐 쌍의 수입니다.

    각 VPort에는 사용할 수 있는 하드웨어 큐 쌍 집합이 있습니다. 각 큐 쌍은 네트워크 어댑터에서 별도의 전송 및 수신 큐로 구성됩니다.

    큐 쌍은 네트워크 어댑터에서 제한된 리소스입니다. 기본적으로 사용하도록 예약된 큐 쌍의 총 수와 기본값이 아닌 VPort는 NIC 스위치를 만들 때 지정됩니다. 이렇게 하면 기본 VPort에 할당된 큐 쌍의 수가 기본 VPort가 아닌 VPort와 다를 수 있습니다.

    기본이 아닌 각 VPort는 서로 다른 수의 큐 쌍을 갖도록 구성할 수 있습니다. 이를 큐 쌍의 비대칭 할당 이라고 합니다. NIC가 이러한 비대칭 할당을 허용하지 않는 경우 각 비대칭 VPort는 동일한 수의 큐 쌍을 갖도록 구성됩니다. 이를 큐 쌍 의 대칭 할당 이라고 합니다. 자세한 내용은 큐 쌍의 대칭 및 비대칭 할당을 참조하세요.

    참고

    PF 미니포트 드라이버는 MiniportInitializeEx 중에 큐 쌍의 비대칭 할당을 지원하는지 여부를 보고합니다. 자세한 내용은 PF 미니포트 드라이버 초기화를 참조하세요.

각 VPort에 할당된 큐 쌍의 수는 동적으로 변경되지 않습니다. VPort를 만든 후에는 VPort에 할당된 큐 쌍 수를 변경할 수 없습니다.

참고

기본이 아닌 VPort에 할당된 하나 이상의 큐 쌍을 게스트 운영 체제에서 실행되는 VF 미니포트 드라이버가 RSS(수신 쪽 크기 조정)에 사용할 수 있습니다.

  • VPort에 대한 인터럽트 조정 매개 변수입니다.

    다른 VPort에 대해 서로 다른 인터럽트 조정 유형을 지정할 수 있습니다. 이렇게 하면 가상화 스택이 특정 VPort에서 생성된 인터럽트 수를 제어할 수 있습니다.

구성 매개 변수 외에도 오버리싱 드라이버는 OID_RECEIVE_FILTER_SET_FILTER OID 메서드 요청을 실행하여 각 VPort에 대한 수신 필터를 구성할 수 있습니다. NIC 스위치는 지정된 수신 필터링을 VPort 기준으로 수행합니다.

VPorts에 대한 수신 필터 매개 변수에는 MAC(미디어 액세스 제어) 주소 목록 및 VLAN(가상 LAN) 식별자와 같은 패킷 필터링 조건이 포함됩니다. MAC 주소 및 VLAN 식별자에 대한 필터는 항상 OID_RECEIVE_FILTER_SET_FILTER 요청과 연결된 NDIS_RECEIVE_FILTER_PARAMETERS 함께 지정됩니다. NIC 스위치는 들어오는 패킷을 대상 MAC 주소 및 VLAN 식별자가 VPort에 설정된 수신 필터 조건과 일치하는 스위치로 필터링해야 합니다. NIC 스위치는 다른 VPort 또는 외부 물리적 포트에서 받은 패킷을 필터링합니다. 패킷이 필터와 일치하는 경우 NIC 스위치는 이를 VPort로 전달해야 합니다.

VPort에서 여러 MAC 주소 및 VLAN 식별자 쌍을 설정할 수 있습니다. MAC 주소만 설정된 경우 수신 필터는 VPort가 다음 조건과 일치하는 패킷을 수신하도록 지정합니다.

  • 패킷의 대상 MAC 주소는 필터의 MAC 주소와 일치합니다.

  • 패킷에는 VLAN 태그 또는 VLAN 태그가 있는 경우 0의 VLAN 식별자가 있습니다.

기본이 아닌 VPort는 OID_NIC_SWITCH_DELETE_VPORT OID 집합 요청을 통해 삭제됩니다. 기본 VPort는 NIC 스위치가 OID_NIC_SWITCH_DELETE_SWITCH OID 집합 요청을 통해 삭제되는 경우에만 삭제됩니다.