Skip to content

为用户态 SSAP Engine 暴露 per-connection channel #6

Description

@sanchuanhehe

What to build

把 SSAP Engine 与链路 mechanism 拆开。

内核保留 connection lifecycle、TCID/链路数据通道、低层分片与流控、安全状态强制,并向唯一用户态 owner 提供 per-connection 双向 PDU channel。slkd 拥有 SSAP codec、ExchangeInfo/MTU、session、pending transaction、服务数据库、发现、read/write/method/notify 和 Profile dispatch。

这更接近 BlueZ 的分层:内核提供链路 channel,用户态协议 Module 拥有服务协议和 Profile 数据,而不是让内核维护应用属性数据库。

Acceptance criteria

  • channel 携带 controller id、connection handle、TCID、direction、payload、security context 与时间戳。
  • 用户态能收发完整 SSAP PDU,并独立完成 request correlation、MTU/session 与标准 status。
  • 每 connection 有明确的 ordering、backpressure、queue limit、overflow、disconnect 与 cancellation 语义。
  • 唯一 owner 断开或 slkd 崩溃时,pairing fail closed,SSAP channel 返回确定错误或关闭,不遗留 pending transaction。
  • kernel security enforcement 至少保证未加密连接不能绕过要求加密的 channel 或 attribute context;用户态可施加更严格 policy。
  • channel Interface 与 raw DLI snoop 分离,普通 Profile 无法发送 controller command。
  • 新旧 SSAP Implementation 可在 feature flag 下共存,并有兼容期、迁移状态与删除条件。
  • 双连接、长 PDU、慢用户态、owner crash、断链和重连测试通过。

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions