Bagikan melalui


Tidak termasuk Pengiriman Paket ke Port Tujuan Switch yang Dapat Diperluas

Topik ini menjelaskan bagaimana ekstensi sakelar Hyper-V yang dapat diperluas dapat mengecualikan pengiriman paket ke port sakelar yang dapat diperluas. Port tujuan untuk paket ditentukan dalam konteks penerusan out-of-band (OOB) dalam struktur NET_BUFFER_LIST paket. Untuk informasi selengkapnya tentang konteks ini, lihat Konteks Penerusan 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.

Catatan Dalam antarmuka sakelar yang dapat diperluas, driver filter NDIS dikenal sebagai ekstensi sakelar yang dapat diperluas dan tumpukan driver dikenal sebagai tumpukan driver sakelar yang dapat diperluas. Untuk informasi selengkapnya tentang ekstensi, lihat Ekstensi Sakelar Yang Dapat Diperluas Hyper-V.

Ekstensi pemfilteran dan penerusan dapat mengecualikan pengiriman paket yang diperoleh pada jalur data masuk atau keluar sakelar yang dapat diperluas. Tidak termasuk pengiriman paket dapat dilakukan dengan cara berikut:

  • Ekstensi dapat menghilangkan paket dengan menyelesaikan permintaan atau indikasi paket. Ini mengecualikan pengiriman paket ke port switch yang dapat diperluas. Metode ini dapat digunakan pada paket yang memiliki satu atau beberapa port tujuan.

    Untuk paket yang diperoleh pada jalur data ingress switch yang dapat diperluas, ekstensi menyelesaikan permintaan pengiriman paket dengan memanggil NdisFSendNetBufferListsComplete.

    Untuk paket yang diperoleh pada jalur data keluar sakelar yang dapat diperluas, ekstensi menyelesaikan indikasi penerimaan paket dengan memanggil NdisFReturnNetBufferLists.

  • Untuk paket yang diperoleh pada jalur data keluar dengan beberapa port tujuan, ekstensi dapat mengecualikan pengiriman paket dengan memodifikasi data untuk satu atau beberapa port tujuan. Ekstensi melakukan ini dengan mengatur anggota IsExcluded dari struktur NDIS_SWITCH_PORT_DESTINATION port tujuan ke nilai satu. Metode ini memungkinkan paket dikirimkan ke port yang nilai IsExcluded-nya diatur ke nol.

    Catatan Paket yang diperoleh pada jalur data ingress tidak berisi port tujuan. Data ini hanya tersedia setelah sakelar yang dapat diperluas meneruskan paket ke jalur data keluar.

Setelah ekstensi memodifikasi nilai IsExcluded port tujuan, ekstensi harus meneruskan paket di jalur data keluar ke ekstensi yang terlalu berlebihan. Namun, jika data IsExcluded untuk semua port tujuan paket diatur ke satu, ekstensi harus menghilangkan paket dengan menyelesaikan indikasi penerimaan paket alih-alih meneruskannya.

Catatan Setelah ekstensi menetapkan nilai IsExcluded port tujuan menjadi satu, ekstensi yang terlalu penting pada jalur data keluar tidak dapat mengubah nilai ini menjadi nol.

Catatan Menangkap ekstensi tidak dapat mengecualikan pengiriman paket ke port switch yang dapat diperluas.

Ekstensi pemfilteran dan penerusan harus mengikuti panduan ini untuk mengecualikan pengiriman paket ke port sakelar yang dapat diperluas:

  • Pada jalur data ingress switch yang dapat diperluas, ekstensi pemfilteran dan penerusan dapat mengecualikan pengiriman paket berdasarkan kriteria kebijakan untuk port atau data sumber paket.

    Informasi port sumber disimpan di penyatuan NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dalam data OOB struktur NET_BUFFER_LIST paket. Ekstensi memperoleh data dengan menggunakan makro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL .

    Jika ekstensi mengecualikan pengiriman paket yang diperoleh dari jalur data masuk, ekstensi harus menghilangkan paket dengan menyelesaikan permintaan pengiriman paket.

  • Pada jalur data ingress switch yang dapat diperluas, ekstensi penerusan menentukan port tujuan paket dan menambahkan informasi ini ke data OOB paket. Berdasarkan kriteria kebijakan yang diberlakukan oleh ekstensi, ia dapat mengecualikan pengiriman paket ke port dengan tidak menambahkan informasi port tujuannya ke data OOB.

    Untuk informasi selengkapnya tentang prosedur ini, lihat Menambahkan Extensible Switch Destination Port Data ke Paket.

  • Pada jalur data keluar sakelar yang dapat diperluas, ekstensi pemfilteran dan penerusan dapat mengecualikan pengiriman paket berdasarkan kriteria kebijakan. Misalnya, ekstensi pemfilteran dapat mengecualikan pengiriman paket berdasarkan kriteria kebijakan untuk port sumber paket atau port tujuan.

    Ekstensi mengecualikan pengiriman paket ke port tujuan dengan mengikuti langkah-langkah berikut:

    1. Ekstensi ini mendapatkan port tujuan paket dengan memanggil GetNetBufferListDestinations. Jika panggilan mengembalikan NDIS_STATUS_SUCCESS, parameter Tujuan berisi penunjuk ke struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Struktur ini menentukan port tujuan sakelar yang dapat diperluas dari paket. Setiap port tujuan diformat sebagai struktur NDIS_SWITCH_PORT_DESTINATION .

      Catatan Jika anggota NumDestinations dari struktur NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY berisi nilai nol, paket tidak memiliki data untuk port tujuan.

  1. Ekstensi mengecualikan pengiriman paket ke port sakelar yang dapat diperluas dengan mengatur anggota IsExcluded dari struktur NDIS_SWITCH_PORT_DESTINATION port tujuan ke nilai satu.

    Catatan Jika ekstensi mengecualikan pengiriman paket ke semua port tujuannya, ekstensi harus menghilangkan paket dengan menyelesaikan indikasi terima paket.

  2. Jika ekstensi mengecualikan pengiriman ke satu atau semua port tujuan dalam paket, ekstensi harus melakukan hal berikut:

    • Ekstensi harus memanggil UpdateNetBufferListDestinations untuk menerapkan perubahan ini pada data OOB paket.

    • Ekstensi harus memanggil ReportFilteredNetBufferLists. Ketika fungsi ini dipanggil, antarmuka sakelar yang dapat diperluas menaikkan penghitung dan mencatat peristiwa untuk paket yang dikecualikan. Ekstensi harus melakukan panggilan ini sebelum meneruskan paket di jalur data sakelar yang dapat diperluas dari mana ia memperoleh paket.

    Demikian pula, jika ekstensi menyelesaikan permintaan pengiriman paket atau indikasi untuk mengecualikan pengiriman ke semua port untuk paket, ekstensi juga harus memanggil ReportFilteredNetBufferLists.

    Catatan Ekstensi dapat membuat daftar tertaut struktur NET_BUFFER_LIST untuk paket yang dikecualikan ekstensi. Saat ekstensi memanggil ReportFilteredNetBufferLists, ekstensi mengatur parameter NetBufferLists ke penunjuk ke daftar yang ditautkan.

Untuk informasi selengkapnya tentang jalur data masuk dan keluar sakelar yang dapat diperluas, lihat Jalur Data Sakelar Yang Dapat Diperluas Hyper-V.