Commit Graph
11 Commits
Author SHA1 Message Date
nutcas3 5ec4db009f feat: Add charging engine client with usage reporting and batch processing support
- Add ChargingEngineClient struct with reqwest HTTP client and configurable base URL
- Add report_usage method for single usage event reporting with volume conversion (bytes to MB)
- Add report_batch_usage method for processing multiple usage events with error tolerance
- Add UsageEvent and UsageResponse types for API request/response serialization
- Add tracing integration (info, warn, error) for usage reporting
2026-04-25 05:25:48 +03:00
nutcas3 f90882b4b2 refactor: Extract health checks and utility modules from packet-gateway ebpf module
- Extract health check handlers to new health.rs module (health, liveness, readiness, metrics endpoints)
- Extract IP conversion utilities to new ip_utils.rs module (u32_to_ipv4_string, ipv4_string_to_u32)
- Extract Redis synchronization logic to new redis_sync.rs module (RedisSyncer with sync_packet_stats, sync_credit_info, sync_credits_from_redis, sync_blocked_from_redis, sync_batch_entry methods)
- Refactor EbpfManager
2026-04-25 03:51:23 +03:00
nutcas3 5467e22d22 feat: Add metrics endpoint to packet-gateway health check server
- Add MetricsResponse struct with status, service, timestamp, tracked_ips, total_bytes_processed, and low_credit_users fields
- Add metrics_handler function calculating tracked IPs count, total bytes processed sum, and low credit users count from EbpfManager stats
- Add GET /metrics route to health check server
- Add ebpf_manager_clone state to health check server for metrics access
2026-04-25 03:46:05 +03:00
nutcas3 121cb60a62 feat: Add HTTP health check endpoints with Redis and eBPF status validation for packet-gateway
- Add axum, serde, serde_json, and chrono dependencies to Cargo.toml
- Add health_port CLI argument (defaults to 8081)
- Add /health endpoint returning basic health status
- Add /health/live endpoint for liveness checks (always returns alive if service is running)
- Add /health/ready endpoint for readiness checks with Redis connectivity and eBPF attachment validation
- Add AtomicBool to track eBPF attachment status across
2026-04-25 03:25:01 +03:00
nutcas3 857ca98382 feat: Add comprehensive Redis rate limiter tests with mock client, middleware validation, and multi-tier support
- Add MockRedisClient struct with Eval/Del/ZCount methods for Redis operation mocking
- Add TestRedisRateLimiter_Allow with under/over limit scenarios and mock Redis response validation
- Add TestRedisRateLimitMiddleware with IP-based rate limiting and empty key bypass tests
- Add TestIPKeyExtractor/TestUserKeyExtractor/TestAPIKeyExtractor with valid/invalid input validation
- Add TestEnd
2026-04-23 03:02:00 +03:00
nutcas3 6aea8af89e feat: Add batch sync mechanism to eBPF packet filter with sync_control flag, sync_buffer map, and stats aggregation
- Add sync_control BPF_MAP_TYPE_ARRAY map with single entry for sync flag control
- Add sync_buffer BPF_MAP_TYPE_PERCPU_ARRAY map with 1024 entries for batched sync data
- Add sync_entry struct with ip/bytes/credit/blocked/valid fields for data transfer
- Update sync_stats XDP program to check sync_control flag and reset after triggering
- Add packet_stats/user_credits/block_list map
2026-04-23 03:01:39 +03:00
nutcas3 316bb76eca feat: Add eBPF manager with XDP program loading, packet stats tracking, credit management, and bidirectional Redis synchronization
- Add EbpfManager struct with bpf/interface fields and PacketStats/SyncEntry/CreditInfo structs for data transfer
- Add new/attach methods for eBPF program loading and XDP attachment with BpfLogger initialization
- Add get_packet_stats/get_credit_info methods for reading packet_stats and user_credits maps
- Add update_user_credit/block_user methods for modifying user
2026-04-23 03:01:09 +03:00
nutcas3 c32d377488 feat: Add build script for eBPF program compilation with cargo build-bpf integration
- Add build.rs with Command execution for cargo build-bpf --release
- Add status check with panic on build failure for eBPF program compilation
2026-04-23 03:00:58 +03:00
nutcas3 3d868580ae feat: Add eBPF manager integration with XDP program loading, bidirectional Redis sync, and graceful shutdown handling
- Add EbpfManager import and initialization with interface parameter and attach method for XDP program loading
- Add initial sync from Redis to eBPF maps on startup with context error handling
- Replace simulated packet processing with sync_batch_to_redis for eBPF-to-Redis data transfer and sync_from_redis for credit updates
- Add periodic stats logging (every 10 iterations) with
2026-04-23 03:00:49 +03:00
nutcas3 f898e9d206 feat: Add eBPF packet filter for credit-based traffic control
- Add XDP-based packet filtering with credit balance enforcement
- Create BPF hash maps for packet statistics, user credits, and block list tracking
- Implement packet size calculation and IP address extraction helpers
- Add credit deduction logic based on packet byte count
- Block packets when user credit balance falls below threshold
- Track bidirectional packet statistics for source and destination IPs
- Include sync_stats hook for periodic Redis
2026-04-14 03:29:00 +03:00
nutcas3 b69b7ec087 feat: Initialize telecom platform with core services and infrastructure
- Add Go-based API server and carrier connector services
- Add Rust-based charging engine and packet gateway services
- Add Docker Compose configuration for local development
- Add comprehensive documentation (API, Architecture, Deployment)
- Add development scripts for Redis, MongoDB, and environment setup
- Add workspace configuration for Go modules and pnpm
- Remove unnecessary documentation files from web-dashboard
- Add project build configuration (Makefile, Cargo.toml)

This commit establishes the foundational microservices architecture for the sovereign Telecom-as-a-Service platform.
2026-04-03 19:55:38 +03:00