MT7916 BA流程

Originator BA会话建立流程

ba_ori_session_start

└─ ba_ori_session_setup

└─ ba_resrc_ori_prep

├─ ba_alloc_ori_entry

└─ RTMPSetTimer (→ ba_ori_session_setup_timeout)

ba_ori_session_setup_timeout (定时器回调)

└─ MlmeEnqueueWithWdev → 发送ADDBA请求

收到ADDBA响应后:

peer_addba_rsp_action

└─ ba_resrc_ori_add

├─ RTMP_ADD_BA_SESSION_TO_ASIC

└─ RTMPSetTimer (可选)

Recipient BA会话建立流程

peer_addba_req_action

├─ cal_rec_ba_wsize

├─ ba_resrc_rec_add

│ ├─ ba_alloc_rec_entry

│ ├─ ba_refresh_reordering_mpdus (清空已有队列)

│ └─ RTMP_ADD_BA_SESSION_TO_ASIC

└─ mlme_send_addba_resp (发送ADDBA响应)

接收数据重排序流程

ba_reorder

├─ amsdu_sanity (检查AMSDU连续性)

├─ ba_flush_reordering_timeout_mpdus (超时刷新)

├─ 根据序列号判断:

│ ├─ SEQ_STEPONE → indicate_rx_pkt (直接上交)

│ ├─ 重复或旧包 → RELEASE_NDIS_PACKET (丢弃)

│ ├─ 窗口内乱序 → ba_enqueue_reordering_packet

│ └─ 超过窗口 → ba_indicate... + goto ba_reorder_check

└─ 更新状态

ba_enqueue_reordering_packet

├─ ba_mpdu_blk_alloc

├─ convert_reordering_packet_to_preAMSDU_or_802_3_packet

└─ ba_reordering_mpdu_insertsorted

ba_indicate_reordering_mpdus_in_order

└─ announce_ba_reorder_pkt → 上交上层

BA会话拆除

ba_ori_session_tear_down

└─ ba_resrc_ori_del

├─ RTMP_DEL_BA_SESSION_FROM_ASIC

└─ ba_free_ori_entry

ba_rec_session_tear_down

└─ ba_resrc_rec_del

├─ RTMP_DEL_BA_SESSION_FROM_ASIC

├─ ba_free_rec_entry

└─ ba_refresh_reordering_mpdus (清空队列)

peer_delba_action

├─ (Initiator=ORIGINATOR) → ba_rec_session_tear_down

└─ (Initiator=RECIPIENT) → ba_ori_session_tear_down

相关推荐
Black蜡笔小新15 分钟前
上云网关/端口穿透/设备上云EasyNTS:无需公网IP、也不改防火墙,设备怎么从内网跑到外网去
网络·网络协议·tcp/ip
女神下凡30 分钟前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
Escalating_xu2 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
Keith Guo2 小时前
Wi-Fi Hosted and Hostess Architectures
wifi·imxrt1052
默|笙3 小时前
【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
linux·网络·tcp/ip
xiaoye-duck3 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(中):全量响应实现和测试
网络·c++·语言模型·chatgpt
无言听风雨丶5 小时前
systemd 与信号 / 僵尸进程:Linux 进程管理的底层逻辑与排错
linux·服务器·网络
世微 如初5 小时前
24V 输入转 9V/0.8A 输出:基于 AP5190 的 LED 降压恒流驱动方案设计与 BOM 清单
驱动开发·芯片·led电源驱动·降压恒流ic
SDWAN_Cheap6 小时前
BGP是什么,广播IP是什么?两个容易混淆的概念拆解
网络·tcp/ip·bgp·广播ip
程序员JerrySUN6 小时前
PCIe Gen5 SSD 为什么读得快、写得慢?从存储原理到 Linux 性能实测
linux·服务器·网络