Skip to content

Configurable limits #610

@gavv

Description

@gavv

This issue tracks progress of implementing various limits.

option default value description notes
--max-mem 0 (no limit) max memory used by context in total
--max-sessions 0 (no limit) max active sessions
--max-session-mem 0 (no limit) max memory used by one session (including packets and frames)
--max-sockets 0 (no limit) max active sockets
--max-socket-mem 0 (no limit) max memory used by queued and pre-buffered packets belonging to socket and not routed to session yet
--max-packet-size roc-send: deduce from --packet-len, roc-recv: 2K max bytes per packet rename from --packet-limit, rework default value
--max-frame-size roc-send, roc-recv: deduce from --frame-len max bytes per frame rename from --frame-limit, rework default value

Steps:

  • refactor current options
    • rename --packet-length to --packet-len, --packet-limit to --max-packet-size (roc-send)
    • rename --frame-length to --frame-len, --frame-limit to --max-frame-size (roc-send, roc-recv)
    • add parse_size() and used it for --max-packet-size and --max-frame-size
    • --max-packet-size: deduce default from --packet-len in roc-send
    • --max-frame-size: deduce default from --frame-len in roc-recv and roc-send
  • factories
    • PacketFactory, BufferFactory: accept IPool instead of IArena
    • node::Context: instantiate pools instead of factories
    • roc_pipeline: pass pools instead of factories
    • roc_pipeline: SenderSession, ReceiverSession, etc: instantiate factories from pools where they're needed
  • preps
    • rename core::Pool to core::SlabPool
    • core::MemoryLimiter
    • core::LimitedArena
    • core::LimitedPool
    • packet::Packet::transfer_to()
  • session limits (--max-sessions, --max-session-mem)
  • socket limits (--max-sockets, --max-socket-mem)
  • global limit (--max-mem)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

On hold

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions