Bendera Kirim dan Terima Sakelar yang Dapat Diperluas Hyper-V
Catatan Halaman ini mengasumsikan bahwa Anda terbiasa dengan informasi dan diagram dalam Gambaran Umum Hyper-V Extensible Switch dan Penerusan Hibrid.
Lalu lintas paket yang bergerak di atas jalur data sakelar yang dapat diperluas Hyper-V diperoleh oleh ekstensi dengan cara berikut:
Ekstensi mendapatkan paket dari jalur data masuk saat fungsi FilterSendNetBufferLists dipanggil. Ekstensi meneruskan paket ke ekstensi yang mendasar pada jalur data masuk dengan memanggil NdisFSendNetBufferLists. Ekstensi pemfilteran dan penerusan juga dapat menghilangkan paket dari jalur data masuk dengan memanggil NdisFSendNetBufferListsComplete.
Ekstensi mendapatkan paket dari jalur data keluar saat fungsi FilterReceiveNetBufferLists dipanggil. Ekstensi meneruskan paket ke ekstensi yang terlalu berlebihan pada jalur data keluar dengan memanggil NdisFIndicateReceiveNetBufferLists. Ekstensi pemfilteran dan penerusan juga dapat menghilangkan paket dari jalur data keluar dengan memanggil NdisFReturnNetBufferLists.
Bendera berikut dapat diatur dalam parameter SendFlags dari FilterSendNetBufferLists atau NdisFSendNetBufferLists:
NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE
Jika bendera ini diatur, semua paket dalam daftar tertaut struktur NET_BUFFER_LIST berasal dari port sumber sakelar yang dapat diperluas Hyper-V yang sama.
Ketika NDIS memanggil FilterSendNetBufferLists, itu akan mengatur bendera ini jika antarmuka ekstensible switch yang dapat diperluas telah mengelompokkan beberapa paket dari port sumber yang sama. Untuk performa terbaik, ekstensi harus menjaga pengelompokan ini di tempat dan mengatur bendera ini saat memanggil NdisFSendNetBufferLists. Ekstensi juga dapat menambahkan paket asal atau kloning ke daftar struktur NET_BUFFER_LIST yang ditautkan jika ekstensi menggunakan port sumber yang sama dengan paket lain dalam daftar.
Catatan Jika setiap paket dalam daftar struktur NET_BUFFER_LIST yang ditautkan menggunakan port sumber yang sama, ekstensi harus mengatur bendera NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE dalam parameter SendCompleteFlagsdari NdisFSendNetBufferListsComplete saat menyelesaikan permintaan pengiriman.
NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP
Jika bendera ini diatur, semua paket dalam daftar tertaut struktur NET_BUFFER_LIST akan diteruskan ke port tujuan switch yang dapat diperluas yang sama.
Ekstensi penerusan dapat menggunakan bendera ini untuk daftar tertaut struktur NET_BUFFER_LIST yang diteruskannya pada jalur data masuk setelah menentukan port tujuan setiap paket. Bendera ini dikonsumsi dan dihapus oleh tepi miniport yang mendasar dari sakelar yang dapat diperluas sebelum meneruskan paket ke jalur data keluar.
Menangkap dan memfilter ekstensi tidak dapat menggunakan bendera ini.
Catatan Ekstensi penerusan hanya menentukan port tujuan paket untuk paket non-NVGRE. Jika paket adalah paket NVGRE, komponen Hyper-V Network Virtualization (HNV) menentukan port tujuan paket dan meneruskan paket. Untuk informasi selengkapnya, lihat Penerusan Hibrid.
Untuk performa terbaik, ekstensi penerusan harus mengatur bendera ini jika semua paket dalam daftar tertaut akan diteruskan ke port tujuan yang sama. Dengan mengatur bendera ini, ekstensi mengakui bahwa semua paket dalam daftar tertaut memiliki elemen port tujuan yang sama dalam konteks penerusan sakelar yang dapat diperluas.
Catatan Ekstensi penerusan tidak boleh mengatur bendera ini untuk daftar paket tertaut yang memiliki beberapa port tujuan.
Bendera berikut dapat diatur dalam parameter ReceiveFlags dari FilterReceiveNetBufferLists atau NdisFIndicateReceiveNetBufferLists:
NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE
Jika bendera ini diatur, semua paket dalam daftar tertaut struktur NET_BUFFER_LIST berasal dari port sumber sakelar yang dapat diperluas Hyper-V yang sama.
Ketika NDIS memanggil FilterReceiveNetBufferLists, itu akan mengatur bendera ini jika sakelar yang dapat diperluas telah mengelompokkan beberapa paket dari port sumber yang sama. Untuk performa terbaik, ekstensi harus menjaga pengelompokan ini di tempat dan mengatur bendera ini saat memanggil NdisMIndicateReceiveNetBufferLists. Ekstensi juga harus menambahkan paket asal atau kloning ke daftar struktur NET_BUFFER_LIST yang ditautkan jika paket memiliki port sumber yang sama dengan paket lain dalam daftar.
Catatan Jika setiap paket dalam daftar struktur NET_BUFFER_LIST yang ditautkan menggunakan port sumber yang sama, ekstensi harus mengatur bendera NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE dalam parameter ReturnFlags dari FilterReturnNetBufferLists saat permintaan terima selesai. Ekstensi harus mengatur bendera ini dalam parameter ReturnFlags jika memanggil NdisFReturnNetBufferLists untuk mengembalikan paket yang tidak berasal atau kloning.
NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP
Jika bendera ini diatur, semua paket dalam daftar tertaut struktur NET_BUFFER_LIST akan diteruskan ke port tujuan switch yang dapat diperluas yang sama.
Ketika NDIS memanggil FilterReceiveNetBufferLists, itu akan mengatur bendera ini jika sakelar yang dapat diperluas telah mengelompokkan beberapa paket yang memiliki port tujuan yang sama. Untuk performa terbaik, ekstensi harus menjaga pengelompokan ini di tempat dan mengatur bendera ini saat memanggil NdisMIndicateReceiveNetBufferLists. Ekstensi juga harus menambahkan paket asal atau kloning ke daftar tertaut struktur NET_BUFFER_LIST jika paket memiliki port tujuan yang sama dengan paket lain dalam daftar.
Catatan Ketika ekstensi memanggil NdisFIndicateReceiveNetBufferLists, ekstensi tidak boleh mengatur bendera NDIS_RECEIVE_FLAGS_RESOURCES di parameter ReceiveFlags . Antarmuka sakelar yang dapat diperluas mengabaikan bendera ini dan akan menyelesaikan indikasi terima dengan memanggil FilterReturnNetBufferLists.