Enhance network resilience features in HMAC File Server 3.2
This commit is contained in:
@ -193,6 +193,26 @@ chunksize = "10MB"
|
|||||||
resumableuploadsenabled = true
|
resumableuploadsenabled = true
|
||||||
ttlenabled = false
|
ttlenabled = false
|
||||||
ttl = "168h"
|
ttl = "168h"
|
||||||
|
networkevents = true
|
||||||
|
|
||||||
|
# Network Resilience Configuration (3.2 Enhanced Features)
|
||||||
|
[network_resilience]
|
||||||
|
enabled = true
|
||||||
|
fast_detection = false # Standard detection for server deployment
|
||||||
|
quality_monitoring = true # Enable quality monitoring
|
||||||
|
predictive_switching = false # Conservative switching for servers
|
||||||
|
mobile_optimizations = false # Standard thresholds for server environment
|
||||||
|
upload_resilience = true # Resume uploads across network changes
|
||||||
|
detection_interval = "5s" # Standard detection interval
|
||||||
|
quality_check_interval = "10s" # Regular quality monitoring
|
||||||
|
network_change_threshold = 3 # Switches required to trigger network change
|
||||||
|
interface_stability_time = "30s" # Server-appropriate stability time
|
||||||
|
upload_pause_timeout = "5m" # Standard upload pause timeout
|
||||||
|
upload_retry_timeout = "10m" # Standard retry timeout
|
||||||
|
rtt_warning_threshold = "200ms" # Server network warning threshold
|
||||||
|
rtt_critical_threshold = "1000ms" # Server network critical threshold
|
||||||
|
packet_loss_warning_threshold = 2.0 # 2% packet loss warning
|
||||||
|
packet_loss_critical_threshold = 10.0 # 10% packet loss critical
|
||||||
|
|
||||||
[downloads]
|
[downloads]
|
||||||
chunkeddownloadsenabled = true
|
chunkeddownloadsenabled = true
|
||||||
|
@ -188,6 +188,15 @@ file = "/var/log/hmac-file-server.log"
|
|||||||
# [uploads]
|
# [uploads]
|
||||||
# max_resumable_age = "48h"
|
# max_resumable_age = "48h"
|
||||||
# chunk_size = "10MB"
|
# chunk_size = "10MB"
|
||||||
|
# networkevents = true
|
||||||
|
|
||||||
|
# [network_resilience]
|
||||||
|
# enabled = true
|
||||||
|
# fast_detection = true # Enable 1-second detection for mobile
|
||||||
|
# quality_monitoring = true # Monitor RTT and packet loss
|
||||||
|
# predictive_switching = true # Switch before complete failure
|
||||||
|
# mobile_optimizations = true # Cellular-friendly thresholds
|
||||||
|
# upload_resilience = true # Resume uploads across network changes
|
||||||
|
|
||||||
# [workers]
|
# [workers]
|
||||||
# numworkers = 4
|
# numworkers = 4
|
||||||
|
@ -26,6 +26,26 @@ chunkeduploadsenabled = true
|
|||||||
chunksize = "32MB"
|
chunksize = "32MB"
|
||||||
resumableuploadsenabled = true
|
resumableuploadsenabled = true
|
||||||
maxresumableage = "48h"
|
maxresumableage = "48h"
|
||||||
|
networkevents = true
|
||||||
|
|
||||||
|
# Network Resilience Configuration (3.2 Enhanced Features)
|
||||||
|
[network_resilience]
|
||||||
|
enabled = true
|
||||||
|
fast_detection = false # Standard 5-second detection
|
||||||
|
quality_monitoring = false # Basic monitoring only
|
||||||
|
predictive_switching = false # Wait for complete failure
|
||||||
|
mobile_optimizations = false # Standard network thresholds
|
||||||
|
upload_resilience = true # Resume uploads across network changes
|
||||||
|
detection_interval = "5s" # Standard detection interval
|
||||||
|
quality_check_interval = "10s" # Standard quality monitoring
|
||||||
|
network_change_threshold = 3 # Switches required to trigger network change
|
||||||
|
interface_stability_time = "30s" # Time to wait before considering interface stable
|
||||||
|
upload_pause_timeout = "5m" # Standard upload pause timeout
|
||||||
|
upload_retry_timeout = "10m" # Standard retry timeout
|
||||||
|
rtt_warning_threshold = "200ms" # Standard RTT warning
|
||||||
|
rtt_critical_threshold = "1000ms" # Standard RTT critical
|
||||||
|
packet_loss_warning_threshold = 2.0 # 2% packet loss warning
|
||||||
|
packet_loss_critical_threshold = 10.0 # 10% packet loss critical
|
||||||
|
|
||||||
[downloads]
|
[downloads]
|
||||||
resumabledownloadsenabled = true
|
resumabledownloadsenabled = true
|
||||||
|
@ -31,6 +31,15 @@ file = "/opt/hmac-file-server/data/logs/hmac-file-server.log"
|
|||||||
# [uploads]
|
# [uploads]
|
||||||
# sessiontimeout = "60m"
|
# sessiontimeout = "60m"
|
||||||
# chunk_size = "10MB"
|
# chunk_size = "10MB"
|
||||||
|
# networkevents = true
|
||||||
|
|
||||||
|
# [network_resilience]
|
||||||
|
# enabled = true
|
||||||
|
# fast_detection = true # Enable 1-second detection for mobile
|
||||||
|
# quality_monitoring = true # Monitor RTT and packet loss
|
||||||
|
# predictive_switching = true # Switch before complete failure
|
||||||
|
# mobile_optimizations = true # Cellular-friendly thresholds
|
||||||
|
# upload_resilience = true # Resume uploads across network changes
|
||||||
|
|
||||||
# [timeouts]
|
# [timeouts]
|
||||||
# readtimeout = "4800s"
|
# readtimeout = "4800s"
|
||||||
|
@ -11,3 +11,12 @@ secret = "f6g4ldPvQM7O2UTFeBEUUj33VrXypDAcsDt0yqKrLiOr5oQW"
|
|||||||
[logging]
|
[logging]
|
||||||
level = "info"
|
level = "info"
|
||||||
file = "/opt/hmac-file-server/data/logs/hmac-file-server.log"
|
file = "/opt/hmac-file-server/data/logs/hmac-file-server.log"
|
||||||
|
|
||||||
|
# Network resilience for production environments
|
||||||
|
[uploads]
|
||||||
|
networkevents = true
|
||||||
|
|
||||||
|
[network_resilience]
|
||||||
|
enabled = true
|
||||||
|
quality_monitoring = true
|
||||||
|
upload_resilience = true
|
||||||
|
@ -11,16 +11,32 @@ RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o hmac-file-server ./cmd/server/
|
|||||||
# Stage 2: Runtime
|
# Stage 2: Runtime
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
|
||||||
RUN apk --no-cache add ca-certificates
|
RUN apk --no-cache add ca-certificates tzdata iputils
|
||||||
|
|
||||||
|
# Create non-root user for security
|
||||||
|
RUN adduser -D -s /bin/sh -u 1011 appuser
|
||||||
|
|
||||||
RUN mkdir -p /opt/hmac-file-server/data/uploads \
|
RUN mkdir -p /opt/hmac-file-server/data/uploads \
|
||||||
&& mkdir -p /opt/hmac-file-server/data/duplicates \
|
&& mkdir -p /opt/hmac-file-server/data/duplicates \
|
||||||
&& mkdir -p /opt/hmac-file-server/data/temp \
|
&& mkdir -p /opt/hmac-file-server/data/temp \
|
||||||
&& mkdir -p /opt/hmac-file-server/data/logs
|
&& mkdir -p /opt/hmac-file-server/data/logs \
|
||||||
|
&& chown -R appuser:appuser /opt/hmac-file-server \
|
||||||
|
&& chmod 750 /opt/hmac-file-server/data/uploads \
|
||||||
|
&& chmod 750 /opt/hmac-file-server/data/duplicates \
|
||||||
|
&& chmod 750 /opt/hmac-file-server/data/temp \
|
||||||
|
&& chmod 750 /opt/hmac-file-server/data/logs
|
||||||
|
|
||||||
WORKDIR /opt/hmac-file-server
|
WORKDIR /opt/hmac-file-server
|
||||||
|
|
||||||
COPY --from=builder /build/hmac-file-server .
|
COPY --from=builder /build/hmac-file-server .
|
||||||
|
RUN chown appuser:appuser hmac-file-server && chmod +x hmac-file-server
|
||||||
|
|
||||||
|
# Switch to non-root user
|
||||||
|
USER appuser
|
||||||
|
|
||||||
|
# Health check for network resilience
|
||||||
|
HEALTHCHECK --interval=30s --timeout=15s --start-period=60s --retries=3 \
|
||||||
|
CMD curl -f http://localhost:8080/health || exit 1
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
|
@ -29,13 +29,14 @@ RUN apk add --no-cache \
|
|||||||
tzdata \
|
tzdata \
|
||||||
curl \
|
curl \
|
||||||
shadow \
|
shadow \
|
||||||
|
iputils \
|
||||||
&& adduser -D -s /bin/sh -u 1011 appuser \
|
&& adduser -D -s /bin/sh -u 1011 appuser \
|
||||||
&& rm -rf /var/cache/apk/*
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
# Create application directories with proper ownership
|
# Create application directories with proper ownership and secure permissions
|
||||||
RUN mkdir -p /app /data /deduplication /iso /logs /tmp && \
|
RUN mkdir -p /app /data /deduplication /iso /logs /tmp && \
|
||||||
chown -R appuser:appuser /app /data /deduplication /iso /logs /tmp && \
|
chown -R appuser:appuser /app /data /deduplication /iso /logs /tmp && \
|
||||||
chmod 755 /app /data /deduplication /iso /logs && \
|
chmod 750 /app /data /deduplication /iso /logs && \
|
||||||
chmod 1777 /tmp
|
chmod 1777 /tmp
|
||||||
|
|
||||||
# Copy binary from builder stage
|
# Copy binary from builder stage
|
||||||
@ -59,8 +60,8 @@ LABEL org.opencontainers.image.title="HMAC File Server" \
|
|||||||
org.opencontainers.image.source="https://github.com/PlusOne/hmac-file-server" \
|
org.opencontainers.image.source="https://github.com/PlusOne/hmac-file-server" \
|
||||||
org.opencontainers.image.licenses="MIT"
|
org.opencontainers.image.licenses="MIT"
|
||||||
|
|
||||||
# Health check for container orchestration
|
# Health check for container orchestration with network resilience awareness
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
HEALTHCHECK --interval=30s --timeout=15s --start-period=60s --retries=3 \
|
||||||
CMD curl -f http://localhost:8888/health || exit 1
|
CMD curl -f http://localhost:8888/health || exit 1
|
||||||
|
|
||||||
# Expose default port (configurable via config)
|
# Expose default port (configurable via config)
|
||||||
|
@ -48,13 +48,22 @@ max_upload_retries = 3
|
|||||||
|
|
||||||
# Enhanced Network Resilience (NEW)
|
# Enhanced Network Resilience (NEW)
|
||||||
[network_resilience]
|
[network_resilience]
|
||||||
|
enabled = true
|
||||||
fast_detection = true # 1-second network change detection
|
fast_detection = true # 1-second network change detection
|
||||||
quality_monitoring = true # Monitor RTT and packet loss
|
quality_monitoring = true # Monitor RTT and packet loss
|
||||||
predictive_switching = true # Proactive network switching
|
predictive_switching = true # Proactive network switching
|
||||||
mobile_optimizations = true # Mobile-friendly thresholds
|
mobile_optimizations = true # Mobile-friendly thresholds
|
||||||
|
upload_resilience = true # Resume uploads across network changes
|
||||||
detection_interval = "1s"
|
detection_interval = "1s"
|
||||||
quality_check_interval = "5s"
|
quality_check_interval = "5s"
|
||||||
max_detection_interval = "10s"
|
network_change_threshold = 3 # Switches required to trigger network change
|
||||||
|
interface_stability_time = "10s" # Mobile-appropriate stability time
|
||||||
|
upload_pause_timeout = "10m" # Mobile-friendly upload pause timeout
|
||||||
|
upload_retry_timeout = "20m" # Extended retry for mobile scenarios
|
||||||
|
rtt_warning_threshold = "500ms" # Cellular network warning threshold
|
||||||
|
rtt_critical_threshold = "2000ms" # Cellular network critical threshold
|
||||||
|
packet_loss_warning_threshold = 5.0 # 5% packet loss warning
|
||||||
|
packet_loss_critical_threshold = 15.0 # 15% packet loss critical
|
||||||
|
|
||||||
[downloads]
|
[downloads]
|
||||||
resumable_downloads_enabled = true
|
resumable_downloads_enabled = true
|
||||||
|
@ -94,6 +94,7 @@ worker_scale_down_thresh = 10
|
|||||||
deduplication_enabled = true
|
deduplication_enabled = true
|
||||||
min_free_bytes = "1GB"
|
min_free_bytes = "1GB"
|
||||||
file_naming = "original"
|
file_naming = "original"
|
||||||
|
networkevents = true # Enable network monitoring for resilience
|
||||||
|
|
||||||
[uploads]
|
[uploads]
|
||||||
# XMPP-compatible file extensions for maximum client support
|
# XMPP-compatible file extensions for maximum client support
|
||||||
@ -113,6 +114,16 @@ upload_slot_ttl = "3600s"
|
|||||||
retry_failed_uploads = true
|
retry_failed_uploads = true
|
||||||
max_upload_retries = 3
|
max_upload_retries = 3
|
||||||
|
|
||||||
|
# Enhanced Network Resilience (NEW)
|
||||||
|
[network_resilience]
|
||||||
|
fast_detection = true # 1-second network change detection
|
||||||
|
quality_monitoring = true # Monitor RTT and packet loss
|
||||||
|
predictive_switching = true # Proactive network switching
|
||||||
|
mobile_optimizations = true # Mobile-friendly thresholds
|
||||||
|
detection_interval = "1s"
|
||||||
|
quality_check_interval = "5s"
|
||||||
|
max_detection_interval = "10s"
|
||||||
|
|
||||||
[downloads]
|
[downloads]
|
||||||
resumable_downloads_enabled = true
|
resumable_downloads_enabled = true
|
||||||
chunked_downloads_enabled = true
|
chunked_downloads_enabled = true
|
||||||
|
@ -38,9 +38,9 @@ ExecStart=/usr/bin/podman run \
|
|||||||
--volume /opt/podman/hmac-file-server/logs:/logs:rw,Z \
|
--volume /opt/podman/hmac-file-server/logs:/logs:rw,Z \
|
||||||
--health-cmd="curl -f http://localhost:8888/health || exit 1" \
|
--health-cmd="curl -f http://localhost:8888/health || exit 1" \
|
||||||
--health-interval=30s \
|
--health-interval=30s \
|
||||||
--health-timeout=10s \
|
--health-timeout=15s \
|
||||||
--health-retries=3 \
|
--health-retries=3 \
|
||||||
--health-start-period=40s \
|
--health-start-period=60s \
|
||||||
localhost/hmac-file-server:latest -config /app/config.toml
|
localhost/hmac-file-server:latest -config /app/config.toml
|
||||||
|
|
||||||
# Stop and cleanup
|
# Stop and cleanup
|
||||||
|
56
installer.sh
56
installer.sh
@ -64,6 +64,7 @@ show_help() {
|
|||||||
echo ""
|
echo ""
|
||||||
echo "New in 3.2 'Tremora del Terra':"
|
echo "New in 3.2 'Tremora del Terra':"
|
||||||
echo " - 93% Configuration Reduction: Simplified setup with intelligent defaults"
|
echo " - 93% Configuration Reduction: Simplified setup with intelligent defaults"
|
||||||
|
echo " - Enhanced Network Resilience: Fast detection, quality monitoring, mobile optimization"
|
||||||
echo " - Enhanced Worker Scaling: Optimized 40%/10% thresholds"
|
echo " - Enhanced Worker Scaling: Optimized 40%/10% thresholds"
|
||||||
echo " - Extended Timeouts: 4800s defaults for large file reliability"
|
echo " - Extended Timeouts: 4800s defaults for large file reliability"
|
||||||
echo " - Multi-Architecture Support: Native AMD64, ARM64, ARM32v7 builds"
|
echo " - Multi-Architecture Support: Native AMD64, ARM64, ARM32v7 builds"
|
||||||
@ -91,7 +92,8 @@ echo -e "${BLUE} HMAC File Server 3.2 'Tremora del Terra' In
|
|||||||
echo -e "${BLUE} Professional XMPP Integration${NC}"
|
echo -e "${BLUE} Professional XMPP Integration${NC}"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${YELLOW}--------------------------------------------------------------------------------${NC}"
|
echo -e "${YELLOW}--------------------------------------------------------------------------------${NC}"
|
||||||
echo -e "${GREEN} 93% Config Reduction Extended 4800s Timeouts${NC}"
|
echo -e "${GREEN} 93% Config Reduction Enhanced Network Resilience${NC}"
|
||||||
|
echo -e "${GREEN} Fast Mobile Detection (1s) Extended 4800s Timeouts${NC}"
|
||||||
echo -e "${GREEN} Enhanced Worker Scaling (40/10) Multi-Architecture Support${NC}"
|
echo -e "${GREEN} Enhanced Worker Scaling (40/10) Multi-Architecture Support${NC}"
|
||||||
echo -e "${GREEN} Prometheus Metrics Integration ClamAV Virus Scanning${NC}"
|
echo -e "${GREEN} Prometheus Metrics Integration ClamAV Virus Scanning${NC}"
|
||||||
echo -e "${GREEN} Redis Cache & Session Management JWT & HMAC Authentication${NC}"
|
echo -e "${GREEN} Redis Cache & Session Management JWT & HMAC Authentication${NC}"
|
||||||
@ -507,7 +509,7 @@ build_server() {
|
|||||||
|
|
||||||
# Build the server
|
# Build the server
|
||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
go build -o "$INSTALL_DIR/hmac-file-server" cmd/server/main.go cmd/server/helpers.go cmd/server/config_validator.go cmd/server/config_test_scenarios.go
|
go build -o "$INSTALL_DIR/hmac-file-server" cmd/server/main.go cmd/server/helpers.go cmd/server/config_validator.go cmd/server/config_test_scenarios.go cmd/server/network_resilience.go cmd/server/upload_session.go cmd/server/chunked_upload_handler.go
|
||||||
|
|
||||||
# Set ownership and permissions
|
# Set ownership and permissions
|
||||||
chown "$HMAC_USER:$HMAC_USER" "$INSTALL_DIR/hmac-file-server"
|
chown "$HMAC_USER:$HMAC_USER" "$INSTALL_DIR/hmac-file-server"
|
||||||
@ -543,6 +545,7 @@ max_file_age = "720h"
|
|||||||
enable_dynamic_workers = true
|
enable_dynamic_workers = true
|
||||||
worker_scale_up_thresh = 40
|
worker_scale_up_thresh = 40
|
||||||
worker_scale_down_thresh = 10
|
worker_scale_down_thresh = 10
|
||||||
|
networkevents = true
|
||||||
|
|
||||||
# Caching and performance
|
# Caching and performance
|
||||||
pre_cache = true
|
pre_cache = true
|
||||||
@ -587,6 +590,14 @@ max_resumable_age = "48h"
|
|||||||
sessiontimeout = "60m"
|
sessiontimeout = "60m"
|
||||||
maxretries = 3
|
maxretries = 3
|
||||||
|
|
||||||
|
# Upload resilience settings
|
||||||
|
session_persistence = true
|
||||||
|
session_recovery_timeout = "300s"
|
||||||
|
client_reconnect_window = "120s"
|
||||||
|
upload_slot_ttl = "3600s"
|
||||||
|
retry_failed_uploads = true
|
||||||
|
max_upload_retries = 3
|
||||||
|
|
||||||
[downloads]
|
[downloads]
|
||||||
chunked_downloads_enabled = true
|
chunked_downloads_enabled = true
|
||||||
chunk_size = "10MB"
|
chunk_size = "10MB"
|
||||||
@ -617,6 +628,16 @@ shutdown = "30s"
|
|||||||
|
|
||||||
[build]
|
[build]
|
||||||
version = "3.2"
|
version = "3.2"
|
||||||
|
|
||||||
|
# Enhanced Network Resilience (3.2+)
|
||||||
|
[network_resilience]
|
||||||
|
fast_detection = true
|
||||||
|
quality_monitoring = true
|
||||||
|
predictive_switching = true
|
||||||
|
mobile_optimizations = true
|
||||||
|
detection_interval = "1s"
|
||||||
|
quality_check_interval = "5s"
|
||||||
|
max_detection_interval = "10s"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [[ $ENABLE_CLAMAV == "true" ]]; then
|
if [[ $ENABLE_CLAMAV == "true" ]]; then
|
||||||
@ -694,9 +715,9 @@ services:
|
|||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:$SERVER_PORT/health"]
|
test: ["CMD", "curl", "-f", "http://localhost:$SERVER_PORT/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 15s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 40s
|
start_period: 60s
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [[ $ENABLE_REDIS == "true" ]]; then
|
if [[ $ENABLE_REDIS == "true" ]]; then
|
||||||
@ -747,11 +768,11 @@ COPY . .
|
|||||||
|
|
||||||
RUN apk add --no-cache git ca-certificates tzdata && \\
|
RUN apk add --no-cache git ca-certificates tzdata && \\
|
||||||
go mod download && \\
|
go mod download && \\
|
||||||
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o hmac-file-server cmd/server/main.go cmd/server/helpers.go cmd/server/config_validator.go cmd/server/config_test_scenarios.go
|
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o hmac-file-server cmd/server/main.go cmd/server/helpers.go cmd/server/config_validator.go cmd/server/config_test_scenarios.go cmd/server/network_resilience.go cmd/server/upload_session.go cmd/server/chunked_upload_handler.go
|
||||||
|
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
|
||||||
RUN apk --no-cache add ca-certificates curl && \\
|
RUN apk --no-cache add ca-certificates curl iputils && \\
|
||||||
addgroup -g 1000 hmac && \\
|
addgroup -g 1000 hmac && \\
|
||||||
adduser -D -s /bin/sh -u 1000 -G hmac hmac
|
adduser -D -s /bin/sh -u 1000 -G hmac hmac
|
||||||
|
|
||||||
@ -767,7 +788,7 @@ USER hmac
|
|||||||
|
|
||||||
EXPOSE $SERVER_PORT $METRICS_PORT
|
EXPOSE $SERVER_PORT $METRICS_PORT
|
||||||
|
|
||||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \\
|
HEALTHCHECK --interval=30s --timeout=15s --start-period=60s --retries=3 \\
|
||||||
CMD curl -f http://localhost:$SERVER_PORT/health || exit 1
|
CMD curl -f http://localhost:$SERVER_PORT/health || exit 1
|
||||||
|
|
||||||
CMD ["./hmac-file-server", "-config", "/etc/hmac-file-server/config.toml"]
|
CMD ["./hmac-file-server", "-config", "/etc/hmac-file-server/config.toml"]
|
||||||
@ -903,6 +924,27 @@ chunkeduploadsenabled = true
|
|||||||
chunksize = "10MB"
|
chunksize = "10MB"
|
||||||
ttlenabled = false
|
ttlenabled = false
|
||||||
ttl = "168h"
|
ttl = "168h"
|
||||||
|
networkevents = true
|
||||||
|
|
||||||
|
# Network Resilience for Mobile Networks (Enhanced 3.2 features)
|
||||||
|
# Optimized for mobile devices switching between WLAN and IPv6 5G
|
||||||
|
[network_resilience]
|
||||||
|
enabled = true
|
||||||
|
fast_detection = true # 1-second detection vs 5-second standard
|
||||||
|
quality_monitoring = true # Monitor RTT and packet loss per interface
|
||||||
|
predictive_switching = true # Switch before complete failure
|
||||||
|
mobile_optimizations = true # Cellular network friendly thresholds
|
||||||
|
upload_resilience = true # Resume uploads across network changes
|
||||||
|
detection_interval = "1s" # Fast mobile network change detection
|
||||||
|
quality_check_interval = "2s" # Regular quality monitoring
|
||||||
|
network_change_threshold = 3 # Switches required to trigger network change
|
||||||
|
interface_stability_time = "10s" # Time to wait before considering interface stable
|
||||||
|
upload_pause_timeout = "10m" # Mobile-friendly upload pause timeout
|
||||||
|
upload_retry_timeout = "20m" # Extended retry for mobile scenarios
|
||||||
|
rtt_warning_threshold = "500ms" # Cellular network warning threshold
|
||||||
|
rtt_critical_threshold = "2000ms" # Cellular network critical threshold
|
||||||
|
packet_loss_warning_threshold = 5.0 # 5% packet loss warning
|
||||||
|
packet_loss_critical_threshold = 15.0 # 15% packet loss critical
|
||||||
|
|
||||||
[downloads]
|
[downloads]
|
||||||
chunkeddownloadsenabled = true
|
chunkeddownloadsenabled = true
|
||||||
|
Reference in New Issue
Block a user