Hyper-V 可延伸交換器傳送和接收旗標
注意 此頁面假設您已熟悉 Hyper-V 可延伸交換 器和 混合式轉送概觀中的資訊和圖表。
透過 Hyper-V 可延伸交換器資料路徑移動的封包流量會以下列方式取得:
當呼叫 其 FilterSendNetBufferLists 函式時,擴充功能會從輸入資料路徑取得封包。 此延伸模組會藉由呼叫 NdisFSendNetBufferLists,將封包轉送至輸入資料路徑上的基礎延伸模組。 篩選和轉送延伸模組也可以藉由呼叫 NdisFSendNetBufferListsComplete,從輸入資料路徑卸載封包。
當呼叫 其 FilterReceiveNetBufferLists 函式時,擴充功能會從輸出資料路徑取得封包。 此延伸模組會藉由呼叫 NdisFIndicateReceiveNetBufferLists,將封包轉送至輸出資料路徑上的過度延伸模組。 篩選和轉送延伸模組也可以藉由呼叫 NdisFReturnNetBufferLists,從輸出資料路徑卸載封包。
下列旗標可以在FilterSendNetBufferLists或NdisFSendNetBufferLists的SendFlags參數中設定:
NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE
如果設定此旗標, 則NET_BUFFER_LIST 結構連結清單中的所有封包都源自相同的 Hyper-V 可延伸交換器來源埠。
當 NDIS 呼叫 FilterSendNetBufferLists時,如果可延伸交換器可延伸介面已將來自相同來源埠的多個封包分組,則會設定此旗標。 為了達到最佳效能,延伸模組應該就地保留此群組,並在呼叫 NdisFSendNetBufferLists時設定此旗標。 如果延伸模組使用與清單中其他封包相同的來源埠,擴充功能也可以將任何原始來源或複製的封包新增至 連結的NET_BUFFER_LIST 結構清單。
注意如果連結的 NET_BUFFER_LIST結構清單中的每個封包使用相同的來源埠,擴充功能應該會在完成傳送要求時,在NdisFSendNetBufferListsComplete的 SendCompleteFlags參數中設定NDIS_SEND_COMPLETE_FLAGS_SWITCH_SINGLE_SOURCE旗標。
NDIS_SEND_FLAGS_SWITCH_DESTINATION_GROUP
如果設定此旗標, 則NET_BUFFER_LIST 結構連結清單中的所有封包都會轉送到相同的可延伸交換器目的地埠。
轉送延伸模組可以使用此旗標作為 連結的NET_BUFFER_LIST 結構清單,其會在判斷每個封包的目的地埠之後,于輸入資料路徑上轉送。 此旗標會由可延伸交換器的基礎迷你埠邊緣取用並移除,再將封包轉送至輸出資料路徑。
擷取和篩選延伸模組無法使用這個旗標。
注意 轉送延伸模組只會決定非 NVGRE 封包的封包目的地埠。 如果封包是 NVGRE 封包,Hyper-V 網路虛擬化 (HNV) 元件會決定封包的目的地埠,並轉送封包。 如需詳細資訊,請參閱 混合式轉送。
為了達到最佳效能,如果連結清單中的所有封包都轉送至相同的目的地埠,轉送延伸模組應該設定此旗標。 藉由設定此旗標,延伸模組會確認連結清單中的所有封包在可延伸交換器轉送內容中具有相同的目的地埠元素。
注意 轉送延伸模組不得針對具有多個目的地埠的封包連結清單設定此旗標。
下列旗標可以在FilterReceiveNetBufferLists或NdisFIndicateReceiveNetBufferLists的ReceiveFlags參數中設定:
NDIS_RECEIVE_FLAGS_SWITCH_SINGLE_SOURCE
如果設定此旗標, 則NET_BUFFER_LIST 結構連結清單中的所有封包都源自相同的 Hyper-V 可延伸交換器來源埠。
當 NDIS 呼叫 FilterReceiveNetBufferLists時,如果可延伸交換器已將來自相同來源埠的多個封包分組,則會設定此旗標。 為了獲得最佳效能,擴充功能應該就地保留此群組,並在呼叫 NdisMIndicateReceiveNetBufferLists時設定此旗標。 如果封包具有與清單中其他封包相同的來源埠,擴充功能也應該將任何原始來源或複製的封包新增至 連結的NET_BUFFER_LIST 結構清單。
注意如果連結NET_BUFFER_LIST結構清單中的每個封包使用相同的來源埠,擴充功能應該會在接收要求完成時,在FilterReturnNetBufferLists的ReturnFlags參數中設定NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE旗標。 如果擴充功能呼叫NdisFReturnNetBufferLists,則必須在ReturnFlags參數中設定此旗標,以傳回其不是源自或複製的封包。
NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP
如果設定此旗標, 則NET_BUFFER_LIST 結構連結清單中的所有封包都會轉送到相同的可延伸交換器目的地埠。
當 NDIS 呼叫 FilterReceiveNetBufferLists時,如果可延伸交換器已將多個具有相同目的地埠的封包分組,則會設定此旗標。 為了獲得最佳效能,擴充功能應該就地保留此群組,並在呼叫 NdisMIndicateReceiveNetBufferLists時設定此旗標。 如果封包具有與清單中其他封包相同的目的地埠,延伸模組也應該將任何原始來源或複製的封包新增至 連結的NET_BUFFER_LIST 結構清單。
注意當擴充功能呼叫NdisFIndicateReceiveNetBufferLists時,它不得在ReceiveFlags參數中設定NDIS_RECEIVE_FLAGS_RESOURCES旗標。 可延伸交換器介面會忽略此旗標,並呼叫 FilterReturnNetBufferLists來完成接收指示。