Bagikan melalui


Urutan Inisialisasi Fungsi Virtual

Adaptor jaringan yang mendukung virtualisasi I/O root tunggal (SR-IOV) harus dapat mendukung komponen perangkat keras berikut:

  • Satu Fungsi Fisik (PF) PCI Express (PCIe). PF selalu ada pada adaptor jaringan dan dilampirkan ke partisi induk Hyper-V.

    Untuk informasi selengkapnya tentang komponen perangkat keras ini, lihat Fungsi Fisik (PF) SR-IOV.

  • Satu atau beberapa PcIe Virtual Functions (VF). Setiap VF harus diinisialisasi dan dilampirkan ke partisi anak Hyper-V sebelum komponen jaringan sistem operasi tamu dapat mengirim atau menerima paket melalui VF.

    Untuk informasi selengkapnya tentang komponen perangkat keras ini, lihat Fungsi Virtual (VF) SR-IOV.

Driver miniport PF, yang berjalan dalam sistem operasi manajemen partisi induk Hyper-V, menginisialisasi dan mengalokasikan sumber daya untuk VF pada adaptor jaringan SR-IOV. Setelah NDIS memanggil fungsi MiniportInitializeEx driver miniport PF, NDIS dan tumpukan virtualisasi dapat mengeluarkan permintaan pengidentifikasi objek (OID) ke driver miniport PF untuk melakukan hal berikut:

  • Buat sakelar NIC pada adaptor jaringan. Sakelar NIC menjejaki lalu lintas jaringan antara VF, PF, dan port jaringan fisik.

    Untuk informasi selengkapnya, lihat Sakelar NIC.

    Catatan Dimulai dengan Windows Server 2012, antarmuka SR-IOV hanya mendukung satu sakelar NIC pada adaptor jaringan. Sakelar ini dikenal sebagai sakelar NIC default, dan dirujuk oleh pengidentifikasi NDIS_DEFAULT_SWITCH_ID.

  • Minta driver miniport PF untuk menginisialisasi dan mengalokasikan sumber daya untuk VF pada adaptor jaringan.

    Untuk informasi selengkapnya, lihat Fungsi Virtual (VF) SR-IOV.

  • Buat port virtual (VPort) pada sakelar NIC dan lampirkan ke VF.

    Untuk informasi selengkapnya, lihat Port Virtual (VPorts).

Diagram berikut menunjukkan langkah-langkah yang terlibat dengan inisialisasi VF.

contoh urutan inisialisasi vf yang menunjukkan panggilan dari tumpukan virtualisasi ke ndis lalu ke driver miniport pf.

NDIS, tumpukan virtualisasi, dan driver miniport PF mengikuti langkah-langkah ini selama urutan inisialisasi VF:

  1. NDIS membaca konfigurasi sakelar default dari registri dan mengeluarkan permintaan metode OID OID_NIC_SWITCH_CREATE_SWITCH untuk menyediakan sakelar di adaptor jaringan. Parameter yang diteruskan dalam permintaan OID ini mencakup informasi tentang cara mengonfigurasi sumber daya perangkat keras penting seperti VF dan VPorts. Ini juga mencakup informasi tentang cara mendistribusikan sumber daya di antara VPort nondefault dan VPort default yang dilampirkan ke PF.

    Setelah OID berhasil diselesaikan oleh driver miniport PF, sakelar NIC siap digunakan untuk membuat VPort dan mengalokasikan VF di atasnya.

    Untuk informasi selengkapnya tentang cara membuat sakelar NIC, lihat Membuat Sakelar NIC.

  2. VF diperlakukan sebagai mekanisme offload untuk adaptor jaringan komputer virtual (VM). Adaptor ini diekspos dalam sistem operasi tamu yang berjalan di partisi anak Hyper-V. Secara default, komponen jaringan dalam sistem operasi tamu mengirim dan menerima paket melalui jalur data sintetis berbasis perangkat lunak. Namun, jika partisi anak diaktifkan untuk offload VF, tumpukan virtualisasi mengeluarkan permintaan OID ke driver miniport PF untuk alokasi sumber daya dan inisialisasi VF. Setelah VF dilampirkan ke partisi anak dan VPort pada sakelar NIC, komponen jaringan mengirim dan menerima paket melalui jalur data VF. Untuk informasi selengkapnya tentang jalur data ini, lihat Jalur Data SR-IOV.

    Jika partisi anak Hyper-V telah diaktifkan untuk offload VF, tumpukan virtualisasi mengeluarkan permintaan metode OID OID_NIC_SWITCH_ALLOCATE_VF ke driver miniport PF. Parameter yang diteruskan dalam permintaan OID ini mencakup pengidentifikasi sakelar NIC tempat VF dialokasikan. Parameter lain termasuk pengidentifikasi untuk partisi anak tempat VF akan dilampirkan.

    Driver miniport PF mengalokasikan sumber daya perangkat keras dan perangkat lunak yang diperlukan untuk VF. Driver miniport PF juga menentukan PCIe Requestor Identifier (RID) untuk VF dengan memanggil NdisMGetVirtualFunctionLocation. RID digunakan untuk DMA dan mengganggu perombakan ketika permintaan dan interupsi DMA dihasilkan oleh VF.

    RID bersama dengan pengidentifikasi VF dikembalikan oleh driver miniport PF ketika berhasil menyelesaikan permintaan OID_NIC_SWITCH_ALLOCATE_VF .

    Untuk informasi selengkapnya tentang alokasi sumber daya untuk VF, lihat Mengalokasikan Sumber Daya untuk Fungsi Virtual.

  3. Tumpukan virtualisasi membuat VPort pada sakelar NIC dengan mengeluarkan permintaan metode OID OID_NIC_SWITCH_CREATE_VPORT ke driver miniport PF. Parameter yang diteruskan dalam permintaan OID ini mencakup pengidentifikasi sakelar NIC tempat VPort akan dibuat. Parameter lain termasuk pengidentifikasi VF tempat VPort akan dilampirkan.

    Catatan VPort default pada sakelar NIC selalu ada dan dilampirkan ke PF. Hanya satu VPort nondefault yang dapat dibuat dan dilampirkan ke VF.

    Sebelum NDIS meneruskan permintaan OID ke driver miniport PF, NDIS mengalokasikan pengidentifikasi VPort yang valid yang unik melalui adaptor jaringan.

    Ketika driver miniport PF menangani permintaan OID, driver ini mengalokasikan sumber daya perangkat keras yang diperlukan untuk VPort dan mempertahankan pengidentifikasi untuk VPort. Pengidentifikasi ini digunakan dalam permintaan OID dan panggilan fungsi SR-IOV nanti.

    Untuk informasi selengkapnya tentang cara membuat VPort, lihat Membuat Port Virtual.

  4. Partisi anak Hyper-V mungkin dimulai jauh sebelum VF dan VPort dialokasikan. Selama waktu ini, komponen jaringan dalam sistem operasi tamu mengirim dan menerima paket melalui jalur data sintetis. Ini melibatkan lalu lintas paket melalui VPort default yang dilampirkan ke PF. Untuk menjenjalkan lalu lintas ke partisi anak, tumpukan virtualisasi mengonfigurasi VPort default dengan filter kontrol akses media (MAC) dan LAN virtual (VLAN) untuk adaptor jaringan VM dari partisi anak.

    Setelah sumber daya untuk VF dan VPort dialokasikan, tumpukan virtualisasi mengeluarkan permintaan metode OID OID_RECEIVE_FILTER_MOVE_FILTER ke driver miniport PF. Permintaan OID ini memindahkan filter MAC dan VLAN untuk adaptor jaringan VM dari VPort default ke VPort yang dilampirkan ke VF. Hal ini menyebabkan paket yang cocok dengan filter ini diteruskan ke VF VPort melalui jalur data VF.

    Catatan Filter penerima yang ada dapat dipindahkan dari VPort default ke VF VPort dengan menggunakan OID_RECEIVE_FILTER_MOVE_FILTER. Selain itu, filter baru dapat diatur pada VF VPort dengan menggunakan OID_RECEIVE_FILTER_SET_FILTER.

Setelah VF dan VPort berhasil dibuat dan filter MAC telah diatur pada VPort, tumpukan virtualisasi memberi tahu penyedia layanan virtual PCI Virtual (VPCI) (VSP). VSP ini berjalan dalam sistem operasi manajemen partisi induk Hyper-V. Pemberitahuan memberi tahu VPCI VSP bahwa VF yang telah berhasil dialokasikan dan dilampirkan ke partisi anak. VPCI VSP mengirim pesan melalui bus komputer virtual (VMBus) ke klien layanan virtual VPCI (VSC) yang berjalan dalam sistem operasi tamu partisi anak. VPCI VSC adalah driver bus yang mengekspos perangkat PCI untuk adaptor jaringan VF.

Setelah adaptor jaringan VF terekspos, subsistem PnP yang berjalan di sistem operasi tamu mendeteksi adaptor dan memuat driver miniport VF. Driver ini mendaftar dengan NDIS. Setelah driver miniport VF diinisialisasi dan filter paket yang sesuai dikonfigurasi pada adaptor jaringan VF, jalur data VF beroperasi penuh. Akibatnya, lalu lintas paket dalam sistem operasi tamu beralih ke jalur data ini dari jalur data sintetis.