create macro for item with textbf

This commit is contained in:
2026-02-25 16:10:21 +01:00
parent c08df6b885
commit c1c94fdf78
3 changed files with 28 additions and 25 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
# LaTeX intermediate and output files # LaTeX intermediate and output files
CLAUDE.md
result result
*.aux *.aux
**/*.bak.* **/*.bak.*

View File

@@ -21,11 +21,11 @@ All experiments were conducted on three bare-metal servers with
identical specifications: identical specifications:
\begin{itemize} \begin{itemize}
\item \textbf{CPU:} Intel Model 94, 4 cores / 8 threads \bitem{CPU:} Intel Model 94, 4 cores / 8 threads
\item \textbf{Memory:} 64 GB RAM \bitem{Memory:} 64 GB RAM
\item \textbf{Network:} 1 Gbps Ethernet (e1000e driver; one machine \bitem{Network:} 1 Gbps Ethernet (e1000e driver; one machine
uses r8169) uses r8169)
\item \textbf{Cryptographic acceleration:} AES-NI, AVX, AVX2, PCLMULQDQ, \bitem{Cryptographic acceleration:} AES-NI, AVX, AVX2, PCLMULQDQ,
RDRAND, SSE4.2 RDRAND, SSE4.2
\end{itemize} \end{itemize}
@@ -85,13 +85,13 @@ for understanding the cost of mesh coordination and NAT traversal logic.
VPNs were selected based on: VPNs were selected based on:
\begin{itemize} \begin{itemize}
\item \textbf{NAT traversal capability:} All selected VPNs can establish \bitem{NAT traversal capability:} All selected VPNs can establish
connections between peers behind NAT without manual port forwarding. connections between peers behind NAT without manual port forwarding.
\item \textbf{Decentralization:} Preference for solutions without mandatory \bitem{Decentralization:} Preference for solutions without mandatory
central servers, though coordinated-mesh VPNs were included for comparison. central servers, though coordinated-mesh VPNs were included for comparison.
\item \textbf{Active development:} Only VPNs with recent commits and \bitem{Active development:} Only VPNs with recent commits and
maintained releases were considered. maintained releases were considered.
\item \textbf{Linux support:} All VPNs must run on Linux. \bitem{Linux support:} All VPNs must run on Linux.
\end{itemize} \end{itemize}
\subsection{Configuration Methodology} \subsection{Configuration Methodology}
@@ -125,9 +125,9 @@ work that relied exclusively on iperf3.
Measures round-trip latency and packet delivery reliability. Measures round-trip latency and packet delivery reliability.
\begin{itemize} \begin{itemize}
\item \textbf{Method:} 100 ICMP echo requests at 200 ms intervals, \bitem{Method:} 100 ICMP echo requests at 200 ms intervals,
1-second per-packet timeout, repeated for 3 runs. 1-second per-packet timeout, repeated for 3 runs.
\item \textbf{Metrics:} RTT (min, avg, max, mdev), packet loss percentage, \bitem{Metrics:} RTT (min, avg, max, mdev), packet loss percentage,
per-packet RTTs. per-packet RTTs.
\end{itemize} \end{itemize}
@@ -147,7 +147,7 @@ TCP streams on all machines simultaneously in a circular pattern
This simulates contention across the mesh. This simulates contention across the mesh.
\begin{itemize} \begin{itemize}
\item \textbf{Metrics:} Throughput (bits/s), retransmits, congestion window, \bitem{Metrics:} Throughput (bits/s), retransmits, congestion window,
jitter (UDP), packet loss (UDP). jitter (UDP), packet loss (UDP).
\end{itemize} \end{itemize}
@@ -156,9 +156,9 @@ This simulates contention across the mesh.
Measures connection-level performance rather than bulk throughput. Measures connection-level performance rather than bulk throughput.
\begin{itemize} \begin{itemize}
\item \textbf{Method:} One qperf instance per CPU core in parallel, each \bitem{Method:} One qperf instance per CPU core in parallel, each
running for 30 seconds. Bandwidth from all cores is summed per second. running for 30 seconds. Bandwidth from all cores is summed per second.
\item \textbf{Metrics:} Total bandwidth (Mbps), CPU usage, time to first \bitem{Metrics:} Total bandwidth (Mbps), CPU usage, time to first
byte (TTFB), connection establishment time. byte (TTFB), connection establishment time.
\end{itemize} \end{itemize}
@@ -167,12 +167,12 @@ Measures connection-level performance rather than bulk throughput.
Measures real-time multimedia streaming performance. Measures real-time multimedia streaming performance.
\begin{itemize} \begin{itemize}
\item \textbf{Method:} The sender generates a 4K (3840$\times$2160) test \bitem{Method:} The sender generates a 4K (3840$\times$2160) test
pattern at 30 fps using ffmpeg with H.264 encoding (ultrafast preset, pattern at 30 fps using ffmpeg with H.264 encoding (ultrafast preset,
zerolatency tuning) at 25 Mbps target bitrate. The stream is transmitted zerolatency tuning) at 25 Mbps target bitrate. The stream is transmitted
over the RIST protocol to a receiver on the target machine for 30 seconds. over the RIST protocol to a receiver on the target machine for 30 seconds.
\item \textbf{Encoding metrics:} Actual bitrate, frame rate, dropped frames. \bitem{Encoding metrics:} Actual bitrate, frame rate, dropped frames.
\item \textbf{Network metrics:} Packets dropped, packets recovered via \bitem{Network metrics:} Packets dropped, packets recovered via
RIST retransmission, RTT, quality score (0--100), received bitrate. RIST retransmission, RTT, quality score (0--100), received bitrate.
\end{itemize} \end{itemize}
@@ -185,12 +185,12 @@ realistic test of VPN behavior under multimedia workloads.
Measures sustained download performance using a real-world workload. Measures sustained download performance using a real-world workload.
\begin{itemize} \begin{itemize}
\item \textbf{Method:} A Harmonia Nix binary cache server on the target \bitem{Method:} A Harmonia Nix binary cache server on the target
machine serves the Firefox package. The client downloads it via machine serves the Firefox package. The client downloads it via
\texttt{nix copy} through the VPN. Benchmarked with hyperfine: \texttt{nix copy} through the VPN. Benchmarked with hyperfine:
1 warmup run followed by 2 timed runs. The local cache and Nix's 1 warmup run followed by 2 timed runs. The local cache and Nix's
SQLite metadata are cleared between runs. SQLite metadata are cleared between runs.
\item \textbf{Metrics:} Mean duration (seconds), standard deviation, \bitem{Metrics:} Mean duration (seconds), standard deviation,
min/max duration. min/max duration.
\end{itemize} \end{itemize}
@@ -267,9 +267,9 @@ be identified during analysis.
Each metric is summarized as a statistics dictionary containing: Each metric is summarized as a statistics dictionary containing:
\begin{itemize} \begin{itemize}
\item \textbf{min / max:} Extreme values observed \bitem{min / max:} Extreme values observed
\item \textbf{average:} Arithmetic mean across samples \bitem{average:} Arithmetic mean across samples
\item \textbf{p25 / p50 / p75:} Quartiles via \texttt{statistics.quantiles()} \bitem{p25 / p50 / p75:} Quartiles via \texttt{statistics.quantiles()}
\end{itemize} \end{itemize}
Multi-run tests (ping, nix-cache) aggregate across runs. Per-second Multi-run tests (ping, nix-cache) aggregate across runs. Per-second
@@ -345,12 +345,12 @@ cryptographic hashes (\texttt{narHash}) and commit SHAs for each input.
Key pinned inputs include: Key pinned inputs include:
\begin{itemize} \begin{itemize}
\item \textbf{nixpkgs:} Follows \texttt{clan-core/nixpkgs}, ensuring a \bitem{nixpkgs:} Follows \texttt{clan-core/nixpkgs}, ensuring a
single version across the dependency graph single version across the dependency graph
\item \textbf{clan-core:} The Clan framework, pinned to a specific commit \bitem{clan-core:} The Clan framework, pinned to a specific commit
\item \textbf{VPN sources:} Hyprspace, EasyTier, Nebula locked to \bitem{VPN sources:} Hyprspace, EasyTier, Nebula locked to
exact commits exact commits
\item \textbf{Build infrastructure:} flake-parts, treefmt-nix, disko, \bitem{Build infrastructure:} flake-parts, treefmt-nix, disko,
nixos-facter-modules nixos-facter-modules
\end{itemize} \end{itemize}

View File

@@ -70,6 +70,8 @@
\usepackage[autostyle=true]{csquotes} % Required to generate \usepackage[autostyle=true]{csquotes} % Required to generate
% language-dependent quotes in the bibliography % language-dependent quotes in the bibliography
\newcommand{\bitem}[1]{\item \textbf{#1}}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% MARGIN SETTINGS % MARGIN SETTINGS
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------