Skip to content

perf: yip-wire SipHash header-auth is ~9% of receiver CPU under load — investigate/optimize #58

Description

@vxfemboy

The post-4a perf re-profile (bulk traffic, 1-core AMD EPYC target box) surfaced the yip-wire coverage-auth SipHash (Sip24) as ~9% of receiver CPU — a surprising userspace hotspot, second only to the kernel TUN-write path (~20%) and well above AEAD decrypt (~4.4%) and RS FEC decode (~1.6%).

See crates/yip-bench/RESULTS.md (the 4b re-profile section) for the profile.

Investigate

  • Is the SipHash recomputed redundantly (e.g. over more bytes than necessary, or more than once per packet)?
  • Can the hashed region be reduced (auth only the header, not the full covered payload, if the AEAD tag already covers the payload)?
  • Is Sip24 (24 rounds) needed, or would SipHash-1-3 / a keyed-BLAKE2s-short / an AES-NI-based one-block MAC be materially cheaper at equal security for a per-packet keyed header tag?
  • Measure the candidate on the target box before committing (spike-first, like the throughput levers).

Constraints

  • The header-auth is load-bearing for the anti-DPI wire design (keyed header protection, no fixed bytes). Any change must preserve the security property and the "no fixed signature" goal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions