Skip to main content

ssh_stamp/
settings.rs

1// SPDX-FileCopyrightText: 2026 Roman Valls Guimera <brainstorm@nopcode.org>
2// SPDX-FileCopyrightText: 2026 Julio Beltran Ortega <jubeormk1@gmail.com>
3// SPDX-FileCopyrightText: 2026 pancake <pancake@nopcode.org>
4// SPDX-FileCopyrightText: 2026 Gabriel Ku Wei Bin <gabriel.ku@fsfe.org>
5// SPDX-FileCopyrightText: 2026 Anthony Tambasco <anthony.tambasco@fastmail.com>
6// SPDX-FileCopyrightText: 2026 Marko Malenic <mmalenic1@gmail.com>
7//
8// SPDX-License-Identifier: GPL-3.0-or-later
9
10//! Compile-time constants: default IP, `WiFi` character set, buffer sizes.
11//!
12//! The heap and buffer sizes are build-time config values declared in this crate's
13//! `build.rs` via `esp-config`. They can be overridden with `SSH_STAMP_CONFIG_*`
14//! environment variables.
15
16use core::net::Ipv4Addr;
17use esp_config::esp_config_int;
18
19// SSH server settings
20//pub(crate) const MTU: usize = 1536;
21//pub(crate) const PORT: u16 = 22;
22pub(crate) const SSH_STAMP_IDENT: &str = env!("SSH_STAMP_IDENT");
23pub(crate) const KEY_SLOTS: usize = 1; // TODO: Document whether this a "reasonable default"? Justify why?
24pub const DEFAULT_IP: Ipv4Addr = Ipv4Addr::new(192, 168, 4, 1); // TODO: Expose this setting via
25// SSH_STAMP env var?
26
27// WiFi SSID and password character set (alphanumeric)
28pub(crate) const WIFI_PASSWORD_CHARS: &[u8; 62] =
29    b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
30// Wifi Station Mode Connection
31pub const STATION_MODE_MAX_RETRY_SECONDS: u8 = 10;
32
33/// UART buffer size in bytes.
34pub const UART_BUFFER_SIZE: usize = 4096;
35
36/// Receive buffer for the SSH TCP socket.
37pub const TCP_RX_BUF: usize = 8192;
38
39/// Transmit buffer for the SSH TCP socket.
40pub const TCP_TX_BUF: usize = 4096;
41
42/// Global allocator heap size in bytes.
43pub const HEAP_SIZE: usize = esp_config_int!(usize, "SSH_STAMP_CONFIG_HEAP_SIZE");