日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

共享內存通信(SMC)常見問題

如果您在Alibaba Cloud Linux 3系統中啟用了共享內存通信SMC(Shared Memory Communication),且使用過程中遇到無法正常通信、部分端口不可用、對比TCP沒有應用性能提升等問題,可以參考本文提供的方案進行排查并解決。

啟用SMC后應用性能對比TCP沒有提升

問題描述

使用SMC加速應用TCP連接之后,應用的性能與直接使用TCP對比并沒有提升。

問題原因及解決方案

  • 由于某些原因,導致應用創建的SMC連接回退到TCP,此時無法使用RDMA加速網絡通信。詳細的回退排查和解決方法,請參見啟用SMC后回退無法使用RDMA加速

  • 應用的網絡通信開銷在整個應用中占比較小。例如應用是傾向于CPU密集型,網絡通信在應用中占比較低。

  • 應用的網絡通信模型不適用SMC。例如:

    • 頻繁建立、銷毀連接(短連接)的場景。SMC創建連接涉及到RDMA資源創建和申請等慢速路徑,根據不同應用短連接的占比,性能對比TCP可能沒有收益。

    • 資源受限的場景。SMC通信所使用的資源受限于機器內存和eRDMA網卡規格,資源不足可能導致SMC回退到TCP。更多信息,請參見共享內存通信(SMC)使用說明

啟用SMC后無法正常通信

問題描述

使用Alibaba Cloud Linux 3開啟SMC之后,訪問某些地址(例如某些公網服務)不通,但是可以ping通。關閉SMC之后恢復正常。

問題原因

某些服務器實現上沒有嚴格準守TCP規范,在處理TCP options時,可能重放TCP options,導致SMC協議識別出現問題。

說明

A TCP implementation MUST (MUST-6) ignore without error any TCP Option it does not implement, assuming that the option has a length field. 更多信息,請參見RFC 9293

如果用于表征支持SMC的TCP option被重放,就會使得本端誤認為對端服務具備SMC能力,引起握手錯誤,導致請求(例如curl)失敗,而ping(ICMP協議)成功的現象。

image

您可以通過check_tcpoption_replay.py工具診斷此類問題:

單擊check_tcpoption_replay.py查看腳本內容

from scapy.all import *
import time
import argparse

# Set up command line arguments
parser = argparse.ArgumentParser(description='Check if the server replays with the same TCP option.')
parser.add_argument('-i', '--ip', required=True, help='Target IP address')
parser.add_argument('-p', '--port', required=True, type=int, help='Target port number')
parser.add_argument('-v', '--verbose', action='store_true', help='Print verbose output')
args = parser.parse_args()

# Target IP and port
target_ip = args.ip  # Get target IP from command line arguments
target_port = args.port  # Get target port from command line arguments
verbose = args.verbose  # Get verbose flag from command line arguments

# Create a TCP SYN packet that includes a special TCP Option
ip = IP(dst=target_ip)
syn = TCP(sport=RandShort(), dport=target_port, flags='S', options=[(254, b'xxxx')])
syn_ack_pkt = sr1(ip/syn, timeout=1, verbose=verbose)

# Check if the returned packet is a TCP SYN-ACK
if syn_ack_pkt and TCP in syn_ack_pkt and syn_ack_pkt[TCP].flags & 18:  # SYN-ACK flags
    # Check for the special TCP Option
    if any(opt[0] == 254 and opt[1] == b'xxxx' for opt in syn_ack_pkt[TCP].options):
        print("The server has replayed the TCP option")
    else:
        print("The server did not replay the TCP option")
else:
    print("Failed to receive SYN-ACK, please make sure the IP and port are correct")
    sys.exit(1)

# Complete the TCP handshake
if syn_ack_pkt:
    ack = TCP(sport=syn_ack_pkt[TCP].dport, dport=target_port, flags='A', seq=syn_ack_pkt[TCP].ack, ack=syn_ack_pkt[TCP].seq + 1)
    send(ip/ack, verbose=verbose)

# Wait for 1 second before disconnecting
time.sleep(1)

# Send TCP FIN to close the connection
if syn_ack_pkt:
    fin = TCP(sport=syn_ack_pkt[TCP].dport, dport=target_port, flags='FA', seq=syn_ack_pkt[TCP].ack, ack=syn_ack_pkt[TCP].seq + 1)
    last_ack_pkt = sr1(ip/fin, timeout=1, verbose=verbose)

# Complete the four-way handshake
if last_ack_pkt and TCP in last_ack_pkt and last_ack_pkt[TCP].flags & 16:  # ACK flag
    last_ack = TCP(sport=syn_ack_pkt[TCP].dport, dport=target_port, flags='A', seq=last_ack_pkt[TCP].ack, ack=last_ack_pkt[TCP].seq + 1)
    send(ip/last_ack, verbose=verbose)
  1. 安裝Python 3和scapy庫。

    yum install python3 -y
    python3 -m pip install scapy
  2. 運行check_tcpoption_replay.py工具。

    python3 check_tcpoption_replay.py -i <服務端IP> -p <服務端port>

    如果服務端存在重放問題則輸出The server has replayed the TCP option,否則輸出The server did not replay the TCP option

解決方案

對于重放SMC TCP option的非預期現象,由于是網絡中間節點或對端的錯誤行為,無法從根本上避免,建議避免在訪問這類服務時使用SMC。

通過smc_run啟用SMC無效

問題描述

根據 共享內存通信(SMC)使用說明通過smc_run ./foo在應用程序維度啟用SMC后,使用smcr l觀察發現沒有成功創建的link group,使用smcss -a也看不到連接或是看到一側連接出現回退。

問題原因

smc_run透明啟用SMC的原理是通過LD_PRELOAD將smc-tools中提供的動態鏈接庫優先于其他庫之前加載,在優先加載的動態鏈接庫的socket(2)中對socket的family和protocol進行修改。因此,若應用程序并非通過動態方式鏈接(如靜態鏈接),則smc_run無法成功透明啟用SMC。

解決方案

根據共享內存通信(SMC)使用說明提供的sysctl net.smc.tcp2smc啟用SMC。

啟用SMC后導致部分端口不可用

問題描述

加載SMC后,65500后的16個端口(即65500~65515)不可用,bind(2)這些端口會導致返回EADDRINUSE

問題原因

由于SMC-R+eRDMA實現方式的特殊性,SMC模塊將會占用ERI所在net namespace下65500開始的16個端口作為OOB建連的預留端口,在dmesg中可以查看到如下提示信息:

smc: smc: load SMC module with reserve_mode
NET: Registered protocol family 43
smc: netns <netns ID> reserved ports [65500 ~ 65515] for eRDMA OOB
smc: adding ib device erdma_0 with port count 1
smc: ib device erdma_0 port 1 has pnetid

如果端口占用失敗則SMC模塊無法使用eRDMA設備。

解決方案

卸載SMC模塊后將會釋放這些端口。卸載方法請參見使用說明

啟用SMC后回退無法使用RDMA加速

問題描述

啟用SMC并替換應用的TCP連接,此時運行smcss -a命令可以看到建立的連接已經自動回退(fallback)到TCP。

問題原因

SMC建立連接時,如果發生異常會自動回退到TCP連接,此時SMC連接仍然可以正常通信,但是無法享受RDMA帶來的性能提升。SMC發生回退時會提供回退原因編號,根據回退編號可以幫助分析和定位問題。

解決方案

  1. 運行smcss -a命令,查看SMC連接的回退編號。

    返回結果示例:

    State          UID   Inode   Local Address           Peer Address            Intf Mode
    ACTIVE         00000 0156721 192.168.99.21:60188     192.168.99.22:8090      0000 TCP 0x03010000
    ACTIVE         00000 1202539 172.16.4.189:44780      172.16.4.190:1811       0000 SMCR

    其中第一條記錄Mode列為TCP,意味著該SMC連接回退到TCP,同時回退編號為0x03010000。第二條記錄Mode列為SMCR,則說明已經正常建立SMC-R連接。如果Mode列顯示的回退編號為兩個(例如0x05000000/0x03030001),其中第一個回退編號為本地的回退原因,第二個回退編號為對端的回退原因,通常是由于對端回退導致了本機無法正常建立SMC連接而回退。

  2. 根據回退編號,從下表中查看可能的原因和解決方案。

    啟用SMC后回退無法使用RDMA加速的原因和解決方案

    回退原因編號

    說明

    可能原因和解決方案

    0x01010000

    機器內存不足,導致資源創建失敗。

    • 原因:機器的空余內存不足,不足以創建SMC建立連接所需要的數據結構和讀寫內存。

    • 解決方案:釋放機器的內存,例如停止不必要的進程。

    0x02010000

    通過CLC或者LLC握手時,等待RDMA鏈路確認超時。

      • 原因1:RDMA網卡或者鏈路發生故障,導致LLC連接(通過RDMA鏈路通信)消息回復超時。

      • 解決方案1:確認RDMA網卡的狀態是否正常。

      • 原因2:以太網卡或者TCP/IP網絡發生故障或者異常,導致CLC連接(通過TCP連接通信)消息回復超時。

      • 解決方案2:確認以太網卡的狀態是否正常。

    0x02020000

    通過LLC創建link超時。

    預留字段,當前未使用。

    0x03000000

    配置錯誤,無法獲取正確的IP地址。

    • 原因:建立連接時,構建proposal時獲取CLC socket對應的IP地址失敗。

    • 解決方案:檢查當前CLC連接(基于TCP協議)和所對應的設備是否正常后重試。

    0x03010000

    對端不支持或未使用SMC。

    • 原因:如果支持SMC協議,將會在建立連接時的CLC連接(基于TCP協議)的SYN(客戶端)或SYNACK(服務端)報文頭中攜帶SMC TCP option標志位。

    • 解決方案:檢測本地或者對端是否已將應用的協議棧替換為SMC,通過 smcss命令(smc-tools包提供)可查看當前SMC的連接狀態。如果沒有找到應用的連接和端口,請重新替換為SMC并創建新的連接。

    0x03020000

    不支持IPSec。

    • 原因:替換的連接使用IPSec,但是當前SMC并不支持IPSec。

    • 解決方案:不使用IPSec。

    0x03030000

    未找到可用的SMC-D或SMC-R設備。

      • 原因1:SMC建立連接使用時,未找到可用的SMC-R(RDMA)設備。

      • 解決方案1:執行smcr d命令,檢查當前是否有SMC-R(RDMA)設備。如果沒有返回任何設備,在使用阿里云eRDMA的場景下,請檢查ECS控制臺是否正確配置ERI設備,并確保操作系統中正確安裝ERI的驅動。

      • 原因2:在多以太網卡環境中,連接所用的以太網卡不具備ERI功能,無法找到eRDMA設備。

      • 解決方案2:通過ibv_devinfo命令查看eRDMA設備的node_guid,再通過ip addr命令查看以太網卡的MAC地址,對比兩者確認連接所用的以太網設備具備ERI eRDMA功能。

      • 原因3:如果啟用RDMA設備的獨占模式,SMC只會在當前創建socket的net namespace中尋找RDMA設備。

      • 解決方案3:執行rdma system命令,如果返回的結果中包含netns exclusive則說明為獨占模式。如果需要在某個netns中使用該RDMA設備,請執行命令rdma dev set <RDMA 設備名> netns <NETNS 名>,將RDMA設備移至該netns。如果RDMA設備為RoCE和iWARP,請將所需的以太網設備也一并移動到該netns。

      • 原因4:使用eRDMA設備時,客戶端嘗試將AF_INET6連接替換為SMC連接。

      • 解決方案4:eRDMA設備只能配合SMCv2協議使用,而SMCv2協議目前不支持替換AF_INET6協議族連接,因此回退到TCP。此時請將應用程序切換為AF_INET協議族。

    0x03030001

    未找到可用的SMC-D設備。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x03030002

    未找到可用的SMC-R設備。

      • 原因1:SMC創建連接過程中,已經選中的RDMA設備失效。

      • 解決方案1:執行smcr d命令,檢查當前系統中是否有可用的 SMC-R(RDMA)設備,如果所需的RDMA設備為阿里云eRDMA設備,請確保該ERI設備已經在ECS控制臺中添加并正確安裝和配置ERI驅動。

      • 原因2:在多以太網卡環境中,連接所用的以太網卡不具備ERI功能,無法找到eRDMA設備。

      • 解決方案2:通過ibv_devinfo命令查看eRDMA設備的node_guid,再通過ip addr命令查看以太網卡的MAC地址,對比兩者確認連接所用的以太網設備具備ERI eRDMA功能。

      • 原因3:如果啟用RDMA設備的獨占模式,SMC只會在當前創建socket的net namespace中尋找RDMA設備。

      • 解決方案3:執行rdma system命令,如果返回的結果中包含netns exclusive則說明為獨占模式。如果需要在某個netns中使用該RDMA設備,請執行命令rdma dev set <RDMA 設備名> netns <NETNS 名>,將RDMA設備移至該netns。如果RDMA設備為RoCE和iWARP,請將所需的以太網設備也一并移動到該netns。

    0x03030003

    SMC-D設備不支持ISMv2協議。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x03030004

    對端不支持SMCv2協議的拓展。

    • 原因:本地啟用了SMC v2協議,但對端不支持SMC v2協議。SMC協議棧通過底層設備能力自動選擇使用SMC v1或SMC v2協議。在使用阿里云eRDMA和RoCE v2的場景下,將使用SMC v2協議。

    • 解決方案:保證通信兩端所有RDMA設備類型相同,則兩端SMC協議版本相同。可通過smcr d查看SMC-R所用設備,在type一欄中可以看到設備類型,如RoCE_Express、RoCE_Express2、或0x107f(即阿里云eRDMA)。

    0x03030005

    對端不支持SMC-Dv2協議的拓展。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x03030006

    對端缺失SEID。

    預留字段,當前未使用。

    0x03030007

    未找到可用的SMC-D v2設備。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x03030008

    對端缺少UEID。

    • 原因:啟用了SMC v2協議,但沒有設置UEID。

    • 解決方案:在兩側通過smc-tools設置相同的UEID,指令為smcr ueid {show | add | del}

    0x03030009

    本地和對端協商SMC版本失敗。

    • 原因:兩側協商SMC版本的結果在CLC握手過程中發生變化。

    • 解決方案:確認兩端OS發行版一致。

    0x0303000a

    LGR可容納連接數量協商失敗。

    • 原因:SMCv2.1支持兩端協商LGR可容納連接數量。若協商結果不可接受,如連接數量為0或超過本地最大支持值,出現該回退。

    • 解決方案:確認兩端OS發行版一致。

    0x0303000b

    LGR可容納link數量協商失敗。

    • 原因:SMCv2.1支持兩端協商LGR可容納link數量。若協商結果不可接受,如link數量為0或超過本地最大支持值,出現該回退。

    • 解決方案:確認兩端OS發行版一致。

    0x0303000c

    本地與對端協商SMC vendor特性失敗。

    • 原因:兩側協商SMC vendor特性的結果在CLC握手過程中發生變化。

    • 解決方案:首先確認兩端OS發行版一致;其次通過uname -r命令確認內核版本,若內核版本為5.10.134-015,則確保在建連過程中不要主動修改sysctl net.smc.vendor_exp_options的值,若內核版本大于等于5.10.134-016,則確保在建連過程中不要主動修改sysctl net.smc.experiment_vendor_options的值。

    0x03040000

    本地和對端的SMC設備模式不匹配 (SMC-D 或 SMC-R)。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x03050000

    對端RMBE中包含eyecatcher非法字段。

    預留字段,Linux實現中未使用。

    0x03060000

    連接使用了不支持MSG_FASTOPEN。

    • 原因:SMC暫不支持MSG_FASTOPEN選項。

    • 解決方案:創建socket時移除MSG_FASTOPEN選項。

    0x03070000

    本地和對端的IP前綴/子網不匹配。

    • 原因:所用RDMA設備是RoCEv1設備時,SMC自動使用SMCv1協議。SMCv1僅支持子網內通信。當兩側不在同一子網內時,將出現該回退。

    • 解決方案:若所用RDMA設備為RoCEv1,則確保通信兩側處在同一子網內;若所用RDMA設備為阿里云eRDMA,則SMC默認使用SMCv2協議,不會有子網限制與相關回退。

    0x03080000

    獲取設備VLAN ID失敗。

    • 原因:創建連接時,SMC會嘗試獲取socket對應設備的VLAN ID。

    • 解決方案:檢查該五元組創建的TCP連接和對應的以太網設備是否正常。

    0x03090000

    ISM設備注冊VLAN ID失敗。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x030a0000

    LGR中無可用SMC-R RDMA鏈路。

    • 原因:創建連接時,將會為每一個連接指定一個該連接所屬LGR的link,如果沒有可用的link,則無法使用RDMA加速。

    • 解決方案:執行smcr d命令,檢查ECS的RDMA卡是否正常。如果所需的RDMA設備為阿里云eRDMA設備,請確保該ERI設備已經在ECS控制臺中添加并正確安裝和配置ERI驅動。

    0x030b0000

    客戶端找不到服務端提供的RDMA鏈路。

    • 原因:客戶端創建連接時,根據服務端提供的QPN、GID和MAC等信息尋找對應的link并創建連接,如果找不到正確的RDMA link則無法使用RDMA加速。

    • 解決方案:執行smcr d命令,檢查ECS的RDMA卡是否正常。如果所需的RDMA設備為阿里云eRDMA設備,請確保該ERI設備已經在ECS控制臺中添加并正確安裝和配置ERI驅動。

    0x030c0000

    協商SMC版本失敗。

    • 原因:通信兩端SMC版本協商結果超出可接受范圍。

    • 解決方案:確認兩端OS發行版一致。

    0x030d0000

    SMC-D DMB數量超越上限。

    當前云場景暫未提供可用的SMC-D設備,如出現該錯誤請聯系阿里云技術支持。

    0x030e0000

    SMC-R v2連接對端不可達。

    • 原因:建連過程中,SMCv2協議中,客戶端需要根據服務端提供的地址尋找正確的路由信息,當前無法根據本地和遠端IP地址找到對應的路由項。

    • 解決方案:檢查該五元組創建的TCP連接和對應的以太網設備是否正常、可達,例如系統的以太網卡、IP配置和路由項配置等。

    0x030f0000

    SMC-R v2連接非直連標志位設置錯誤。

    • 原因:建連過程中,SMCv2 協議中,客戶端根據服務器設置的gateway標志位判斷是否經過網關,但是根據本地和遠端IP查到的路由項指出并沒有經過網關,二者不一致。

    • 解決方案:檢查該五元組創建的TCP連接和對應的以太網設備是否正常、可達,是否經過相同的網絡路徑,例如系統的以太網卡、IP配置和路由項配置等。

    0x04000000

    服務端和客戶端復用LGR錯誤。

    • 原因:建連過程中,服務端復用LGR,但是客戶端想要創建LGR,二者行為錯誤。

    • 解決方案:執行smcr d命令,檢查ECS的RDMA卡是否正常。如果所需的RDMA設備為阿里云eRDMA設備,請確保該ERI設備已經在ECS控制臺中添加并正確安裝和配置ERI驅動。

    0x05000000

    握手過程中對端拒絕。

    • 原因:建立連接過程中,對端回復的CLC消息拒絕建立RDMA連接。

    • 解決方案:執行smcss命令,根據五元組信息找到對應的連接,并找到回退原因,包含本地和對端回退原因,根據對端回退編號確定具體原因。

    0x09990000

    RDMA相關資源創建錯誤。

    • 原因:RDMA資源創建、初始化失敗。

    • 解決方案:通過RDMA監控工具查看資源申請失敗統計。若所用設備為阿里云eRDMA設備,可以使用eadm stat查看錯誤統計。

    0x09990001

    RDMA rtoken增加失敗。

    SMC協議棧錯誤,如出現該錯誤請聯系阿里云技術支持。

    0x09990002

    初始化RDMA QP資源失敗。

    • 原因:建立連接時,如果需要創建新的link(對應為一個RDMA QP)資源,SMC會依次調用IB verbs接口初始化并修改RDMA QP,而在此過程中發生異常。

    • 解決方案:執行smcr d命令,檢查當前是否有SMC-R(RDMA)設備。如果使用阿里云eRDMA,請檢查ECS控制臺是否正確配置ERI設備,并確保操作系統中正確安裝ERI的驅動。

    0x09990003

    RDMA內存注冊(MR)失敗。

    • 原因:使用RDMA通信時,需要注冊內存區域用以RDMA網卡訪問和寫入數據,如果使用的MR數量或者大小超過了RDMA設備的規格,則會報錯。

    • 解決方案:執行smcr d命令,找到SMC所使用的RDMA設備名。再執行ibv_devinfo -d <RDMA 設備名> -v | grep max_mr,其中 max_mr為RDMA設備支持的最多MR數量,max_mr_size為 RDMA設備支持的最大MR大小;通常情況下為MR的數量達到瓶頸,此時請減少SMC的連接數量。

    0x09990004

    SMC流控所需的credit初始化失敗。

    • 原因:RDMA網卡或者鏈路發生故障,導致credit通告消息(通過RDMA鏈路通信)發送失敗。

    • 解決方案:確認RDMA網卡的狀態是否正常。

啟用SMC后常見網絡運維工具的數據與預期不符

問題描述

使用Alibaba Cloud Linux 3開啟SMC-R之后,常見的網絡分析工具tcpdump、Wireshark等,網絡監控工具ss(Socket Statistics)、netstat等,觀察到的網絡流量與預期不符或無法觀察到預期流量。

問題原因

這是因為SMC-R是基于RDMA的網絡通信技術,目前常見的網絡運維工具只能分析或監控TCP流量,無法識別RDMA的網絡數據報文。這會導致實際的網絡數據和網絡運維工具中顯示的數據不匹配。

解決方案

可以嘗試使用RDMA相關的運維工具進行數據分析或監控。更多信息,請參見監測和診斷eRDMA

在GPU或SCC實例上加載SMC模塊不可用

問題描述

在GPU或SCC實例上加載SMC模塊,模塊不可用。

問題原因

這類實例中安裝了Mellanox廠商版本OFED驅動,默認加載的是OFED中的SMC模塊,不具備實際功能。且由于安裝Mellanox OFED驅動后RDMA相關函數的符號發生變化,加載內核自帶的SMC模塊會出現Unknow symbol錯誤而無法加載成功。

解決方案

目前Alibaba Cloud Linux 3 SMC模塊不支持在GPU或SCC等實例中使用。

啟用SMC后setsockopt/getsockopt部分SOL_SOCKET或SOL_TCP層選項效果與預期不符

問題描述

啟用SMC并替換應用的TCP連接后,原本作用于TCP連接的部分SOL_SOCKET或SOL_TCP層選項通過setsockopt或getsockopt設置失敗,或設置成功但無法起到預期效果。

問題原因

使用SMC替換TCP協議棧后,數據路徑上基于共享內存完成通信,協議棧設計和數據傳遞方式都與TCP有著很大的不同。因此,部分SOL_SOCKET或SOL_TCP層選項不再適用。

解決方案

對照下表查看Alibaba Cloud Linux 3中SMC對SOL_SOCKET或SOL_TCP層選項的支持情況。

SMC對SOL_SOCKET或SOL_TCP層選項的支持情況可以分為以下3種類型:

  • Y:支持,設置/獲取選項返回成功,并且能夠達到預期效果。

  • M:不支持,設置/獲取返回成功,但由于SMC與TCP設計的不同,無法達到預期效果。

  • N:不支持,設置/獲取返回失敗,回退到TCP(回退原因編號:0x03060000或0x03010001)。

SOL_SOCKET層選項

OPTIONS

SMC支持情況

SO_DEBUG

Y

SO_REUSEADDR

Y

SO_TYPE

Y

SO_ERROR

Y

SO_DONTROUTE

M

SO_BROADCAST

M

SO_SNDBUF

Y

SO_RCVBUF

Y

SO_SNDBUFFORCE

Y

SO_RCVBUFFORCE

Y

SO_KEEPALIVE

M

SO_OOBINLINE

M

SO_NO_CHECK

M

SO_PRIORITY

M

SO_LINGER

Y

SO_BSDCOMPAT

M

SO_REUSEPORT

Y

SO_PASSCRED

M

SO_PEERCRED

M

SO_RCVLOWAT

M

SO_SNDLOWAT

M

SO_RCVTIMEO_OLD

Y

SO_SNDTIMEO_OLD

Y

SO_SECURITY_AUTHENTICATION

N

SO_SECURITY_ENCRYPTION_TRANSPORT

N

SO_SECURITY_ENCRYPTION_NETWORK

N

SO_BINDTODEVICE

N

SO_ATTACH_FILTER

M

SO_DETACH_FILTER

M

SO_PEERNAME

Y

SO_ACCEPTCONN

M

SO_PEERSEC

N

SO_PASSSEC

M

SO_MARK

M

SO_PROTOCOL

Y

SO_DOMAIN

Y

SO_RXQ_OVFL

M

SO_WIFI_STATUS

M

SO_PEEK_OFF

N

SO_NOFCS

M

SO_LOCK_FILTER

Y

SO_SELECT_ERR_QUEUE

M

SO_BUSY_POLL

M

SO_MAX_PACING_RATE

M

SO_BPF_EXTENSIONS

Y

SO_INCOMING_CPU

M

SO_ATTACH_BPF

M

SO_ATTACH_REUSEPORT_CBPF

M

SO_ATTACH_REUSEPORT_EBPF

N

SO_CNX_ADVICE

M

SO_MEMINFO

M

SO_INCOMING_NAPI_ID

M

SO_COOKIE

Y

SO_PEERGROUPS

N

SO_ZEROCOPY

N

SO_TXTIME

M

SO_BINDTOIFINDEX

N

SO_TIMESTAMP_OLD

M

SO_TIMESTAMPNS_OLD

M

SO_TIMESTAMPING_OLD

M

SO_TIMESTAMP_NEW

M

SO_TIMESTAMPNS_NEW

M

SO_TIMESTAMPING_NEW

M

SO_RCVTIMEO_NEW

Y

SO_SNDTIMEO_NEW

Y

SO_DETACH_REUSEPORT_BPF

N

SOL_TCP層選項

OPTIONS

SMC支持情況

TCP_NODELAY

Y

TCP_MAXSEG

M

TCP_CORK

Y

TCP_KEEPIDLE

M

TCP_KEEPINTVL

M

TCP_KEEPCNT

M

TCP_SYNCNT

M

TCP_LINGER2

M

TCP_DEFER_ACCEPT

Y

TCP_WINDOW_CLAMP

M

TCP_INFO

M

TCP_QUICKACK

M

TCP_CONGESTION

M

TCP_MD5SIG

Y

TCP_THIN_LINEAR_TIMEOUTS

M

TCP_THIN_DUPACK

M

TCP_USER_TIMEOUT

M

TCP_REPAIR

M

TCP_REPAIR_QUEUE

M

TCP_QUEUE_SEQ

M

TCP_REPAIR_OPTIONS

M

TCP_FASTOPEN

N

TCP_TIMESTAMP

M

TCP_NOTSENT_LOWAT

M

TCP_CC_INFO

M

TCP_SAVE_SYN

Y

TCP_SAVED_SYN

Y

TCP_REPAIR_WINDOW

M

TCP_FASTOPEN_CONNECT

N

TCP_ULP

N

TCP_MD5SIG_EXT

Y

TCP_FASTOPEN_KEY

N

TCP_FASTOPEN_NO_COOKIE

N

TCP_ZEROCOPY_RECEIVE

N

TCP_CM_INQ/TCP_INQ

M

TCP_TX_DELAY

M