Releases: ellanetworks/core
Releases · ellanetworks/core
v1.5.2
What's Changed
- feat(ui): quality and consistency improvements by @gruyaume in #1096
- fix: backup on systems without /tmp dir by @gruyaume in #1101
- feat: require current password on self-change by @gruyaume in #1102
- feat: increase eBPF ring buffer map size to 16K by @gruyaume in #1103
- chore: bump version to v1.5.2 by @gruyaume in #1104
Full Changelog: v1.5.1...v1.5.2
v1.5.1
What's Changed
- chore: mark unused operator sub-GET endpoints as deprecated by @gruyaume in #1094
- fix: Use HASH_MAPS instead of ARRAYs for FARs, QERs, and URRs by @ghislainbourgeois in #1095
- perf: Embed FAR and QER in PDR to reduce lookups by @ghislainbourgeois in #1097
- fix: short integrity protected NAS payload by @gruyaume in #1098
- fix: length check in path switch request IE by @gruyaume in #1099
- chore: bump to v1.5.1 by @gruyaume in #1100
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Summary
New features
- AI skill support: Use an AI agent to monitor and manage Ella Core using its OpenAPI specification and SKILL.md. This feature is useful for network monitoring, troubleshooting, security investigations, and more. To enable it:
- Create a dedicated user for the agent with the appropriate role (e.g. "network manager" for full network access, "read only" for monitoring).
- Place
SKILL.mdin a directory that your AI agent expects. - Ask the agent questions about your 5G network. The agent will prompt you for Ella Core's URL and an API token when needed.
- Support bundle: Click on "Support Bundle" and generate a support bundle that contains a summary of Ella Core's configuration and data, with sensitive fields removed. Share this package with Ella Networks when you need support. You can view and edit the content of the bundle before sharing it. This feature is only available to admins.
- User detail page: Click on a user ID and manage API tokens, edit roles and view recent audit logs. This page is only available for admins and is especially useful to provision API tokens for other users.
- Subscriber details page: Click on a subscriber ID and view provisioning information, connection data and traffic summary. Useful for provisioning, troubleshooting, and audit.
- Filter audit logs: Filter audit logs by date or user in the UI or API
New features
- Platform security explanation: Explanation of Authentication & Authorization, Secret storage, Transport security, minimal attack surface and audit logging in Ella Core.
- Manage Your Network with AI agents how-to guide
New features
- Bug fixes
- Dependency updates
Deprecation warning
- New endpoint for subscriber credentials: If you depend on Ella Core's API for retrieving subscriber credentials, switch to
GET /api/v1/subscribers/{imsi}/credentials. The credential fields in the subscriber struct returned byGET /api/v1/subscribers/{imsi}andGET /api/v1/subscribersare deprecated and will be removed in a future release.
What's Changed
- chore: bump aquasecurity/trivy-action from 0.34.1 to 0.34.2 in the github_actions group by @dependabot[bot] in #1060
- fix: crash given missing IE in NG Reset message by @gruyaume in #1062
- chore: Refactor SUPI handling to a custom type by @ghislainbourgeois in #1061
- docs: add traffic visibility to key features by @gruyaume in #1063
- chore: Add missing NAS unit tests by @ghislainbourgeois in #1065
- chore: bump immutable from 5.1.4 to 5.1.5 in /ui by @dependabot[bot] in #1066
- docs: add platform security explanation by @gruyaume in #1067
- chore(ui): handle copy public key error by @gruyaume in #1068
- feat(ui): subscriber detail page by @gruyaume in #1064
- fix: crash given no RAN connection when UE sends PDU Session Release by @gruyaume in #1069
- fix: unnecessary decryption attempt by @gruyaume in #1070
- chore: dont try adding 0.0.0.0 to neighbors by @gruyaume in #1072
- chore: remove unnecessary subscriber state field by @gruyaume in #1073
- feat(ui): better highlight clickable areas by @gruyaume in #1074
- fix: guard for missing IEs in NGAP messages by @gruyaume in #1075
- feat: Add support bundle generation, API and UI by @ghislainbourgeois in #1071
- feat: add OpenAPI spec and SKILLS.md for AI agents by @gruyaume in #1076
- fix: API Tokens for non-admin users by @gruyaume in #1078
- feat: Add most BPF maps to support bundle by @ghislainbourgeois in #1077
- docs: use ascii cast to represent Claude's use of Ella Core's skill by @gruyaume in #1079
- chore: add db migration system by @gruyaume in #1080
- chore: harden DB restore by @gruyaume in #1081
- fix: periodic registration complete normally by @gruyaume in #1082
- feat(ui): add user details page by @gruyaume in #1083
- fix: prevent admin accidental lockout by @gruyaume in #1084
- feat(ui): filter audit logs by date or user by @gruyaume in #1085
- chore: bump the go_dependencies group across 1 directory with 7 updates by @dependabot[bot] in #1087
- chore: bump the npm_dependencies group in /ui with 5 updates by @dependabot[bot] in #1088
- fix: api token display by @gruyaume in #1089
- feat(ui): replace text input with dropdown in NGAP message filters by @gruyaume in #1090
- chore: bump the github_actions group with 2 updates by @dependabot[bot] in #1092
- feat: add new subscriber credentials endpoint by @gruyaume in #1091
- chore: bump version to v1.5.0 by @gruyaume in #1093
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Summary
New features
- Traffic Flows: Gain visibility into how each subscriber reaches external networks. Powered by eBPF/XDP, Ella Core captures network flow metadata (IMSI, source and destination IP addresses and port, protocol, and traffic direction). This enables observability, security monitoring, troubleshooting, and compliance use cases. The feature is on by default and can be disabled by administrators. See the UI screenshot below.
- Global snackbar: Introduce a global snackbar/toast notification system across the UI for consistent user feedback.
- Trace<->log correlation: Correlate logs with distributed traces using trace IDs.
Documentation
- Improved observability reference: Add example Grafana alert rules and recommend Tempo and Mimir for Tracing and Metrics.
Maintenance
- Bug fixes
- Dependency updates
- Performance improvements
Screenshots
What's Changed
- chore: dont log entire n1 sm message by @gruyaume in #1031
- feat: Add collection of data for flow accounting by @ghislainbourgeois in #1033
- fix: return early if too many data networks by @gruyaume in #1035
- chore: standardize ui loading by @gruyaume in #1037
- chore: bump the npm_dependencies group in /ui with 4 updates by @dependabot[bot] in #1039
- fix: Add implicit deregistration and centralize deregistration logic by @ghislainbourgeois in #1036
- chore: bump aquasecurity/trivy-action from 0.34.0 to 0.34.1 in the github_actions group by @dependabot[bot] in #1038
- chore: replace Jaeger and Prometheus with Tempo and Mimir by @gruyaume in #1042
- fix: race conditions by @gruyaume in #1040
- docs: provide example Grafana alert rules by @gruyaume in #1043
- feat: add trace<->log correlation using trace ID by @gruyaume in #1044
- perf: buffer network log inserts to speed up NGAP message processing by @gruyaume in #1045
- feat: Store flows in DB and add API access by @ghislainbourgeois in #1046
- docs: add schema for eBPF/XDP packet processing by @gruyaume in #1048
- feat: Add flow accounting dynamic setting and UI by @ghislainbourgeois in #1047
- chore: bump go version and golang.org/x/net by @dependabot[bot] in #1049
- chore: bump minimatch from 3.1.2 to 3.1.5 in /ui by @dependabot[bot] in #1050
- chore: bump rollup from 4.57.1 to 4.59.0 in /ui by @dependabot[bot] in #1051
- feat(ui): use global snackbar/toast system by @gruyaume in #1052
- feat: add uplink/downlink direction to flow accounting by @gruyaume in #1053
- chore(ui): use snackbar in auth pages by @gruyaume in #1054
- chore: bump the npm_dependencies group in /ui with 4 updates by @dependabot[bot] in #1056
- chore(ui): UX improvements in flows by @gruyaume in #1057
- chore: bump the github_actions group with 2 updates by @dependabot[bot] in #1055
- chore: bump core version to v1.4.0 by @gruyaume in #1058
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Summary
Maintenance
- Replace Next.js with Vite for frontend development
- Add unit tests for UE specific messages
- Bug fixes
- Dependency updates
Documentation
- Add how-to guides:
- Emphasize 5G RedCap compliance for IoT deployments (validated with Quectel RM520N-GL)
What's Changed
- fix: nil pointer when remote addr is nil by @gruyaume in #988
- chore: add host info to traces and include Grafana Alloy example config by @gruyaume in #989
- chore: bump github.com/golang-jwt/jwt/v5 from 5.3.0 to 5.3.1 in the go_dependencies group by @dependabot[bot] in #991
- chore: Add unit tests for handleServiceRequest by @ghislainbourgeois in #990
- chore: bump the npm_dependencies group in /ui with 7 updates by @dependabot[bot] in #993
- chore: bump docker/login-action from 3.6.0 to 3.7.0 in the github_actions group by @dependabot[bot] in #992
- feat: improve span names and attributes for tracing by @gruyaume in #994
- chore: Refactor TMSI to its own type with improved allocator by @ghislainbourgeois in #995
- chore: Refactor GUTI to specific type by @ghislainbourgeois in #996
- chore: improve ui code quality by @gruyaume in #997
- docs: Add Quectel RM520N-GL to supported equipment by @ghislainbourgeois in #998
- chore: replace Next.js frontend framework with Vite by @gruyaume in #999
- chore: bump the go_dependencies group with 6 updates by @dependabot[bot] in #1001
- chore: improve ui performance and use svg logo by @gruyaume in #1000
- chore: bump the npm_dependencies group in /ui with 3 updates by @dependabot[bot] in #1002
- fix: no session token after restart by @gruyaume in #1003
- fix: re-apply PRAGMAs after restore by @gruyaume in #1005
- chore: Add Deregistration Request unit tests by @ghislainbourgeois in #1007
- chore: various db layer quality improvements by @gruyaume in #1006
- chore: Add more NAS handler tests by @ghislainbourgeois in #1009
- docs: Add Quectel RedCap module to list of supported devices by @ghislainbourgeois in #1010
- docs: how-to co-host with srsRAN by @gruyaume in #1011
- docs: 5G RedCap compliant for IoT deployments by @gruyaume in #1012
- chore: bump mkdocs python deps by @gruyaume in #1013
- chore: add unit tests for NGAP handover required by @gruyaume in #1015
- fix: delete db entry even if kernel route cant be deleted by @gruyaume in #1016
- docs: Add how-to guide for exchanging routes through BGP by @ghislainbourgeois in #1017
- fix: allValue variable in deep dive dashboard by @gruyaume in #1018
- docs: correct interface name and highlighted code blocks by @gruyaume in #1019
- docs: reduce logging level on srsRAN by @gruyaume in #1020
- chore: improve unit tests for gNB Handover by @gruyaume in #1021
- chore: use core-tester with xn handover tests by @gruyaume in #1022
- docs: add Vite and Go details to Contributing guide by @gruyaume in #1023
- chore: bump the go_dependencies group with 3 updates by @dependabot[bot] in #1025
- chore: bump aquasecurity/trivy-action from 0.33.1 to 0.34.0 in the github_actions group by @dependabot[bot] in #1026
- chore: bump the npm_dependencies group in /ui with 7 updates by @dependabot[bot] in #1027
- docs: replace srsRAN with OCUDU by @gruyaume in #1028
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Summary
New features
- 10 new metrics: Get insight into control plane, user plane, API, and database operations. Use these metrics to create comprehensive dashboards and alert rules.
- Grafana dashboards: Import pre-built dashboards in Grafana: "Network Health" for day-to-day private 5G operations and "Deep dive" for developers needing deep insight into Ella Core's performance.
- Standardize logging: Standardize file and stdout logs to JSON format for better parsing and searchability in centralized logging tools like Loki and Opensearch.
Maintenance
- Bug fixes
- Dependency updates
Commits
- chore: bump the npm_dependencies group in /ui with 9 updates by @dependabot[bot] in #978
- feat: add 10 new metrics by @gruyaume in #977
- fix: Do not convert TAC assuming decimal by @ghislainbourgeois in #980
- chore: bump next from 16.1.4 to 16.1.5 in /ui by @dependabot[bot] in #982
- feat: output logs in json format by @gruyaume in #983
- chore: bump github.com/moby/moby/client from 0.2.1 to 0.2.2 in the go_dependencies group by @dependabot[bot] in #985
- fix: use address as the row ID for radios [ui] by @gruyaume in #984
- chore: bump version to v1.2.0 by @gruyaume in #986
- docs: publish Grafana dashboards by @gruyaume in #981
- fix: avoid nil pointer when GnbID is nil by @gruyaume in #987
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Summary
New features
- Profiling API endpoints (pprof): Exposed pprof endpoints to help operators and developers analyze performance and troubleshoot CPU and memory issues.
- Backup & restore support in Go API client: Added new functions to allow automating backup & restore using the Go client.
- Improved primary UI dashboard: The primary dashboard has been refined for better usability and visibility into system status.
Documentation
- Added TRex performance test results
- Added Baicells and Vankom to the list of supported commercial radios
- Included links to YouTube and other social channels
Maintenance
- Expanded unit testing coverage:
- Bootstrapped unit testing suite for UE-specific NGAP messages
- Increased coverage of edge-cases in API testing suite
- Bug fixes and security improvements
- Dependency updates
Commits
- chore: bump version to v1.0.0 by @gruyaume in #958
- docs: update screenshots to ella-core v1.0.0 by @gruyaume in #959
- chore: bump the go_dependencies group with 3 updates by @dependabot[bot] in #960
- chore: bump the npm_dependencies group in /ui with 7 updates by @dependabot[bot] in #961
- docs: Add TRex performance test results by @ghislainbourgeois in #962
- chore: Add NAS Registration Request unit tests by @ghislainbourgeois in #963
- chore: bump the npm_dependencies group in /ui with 8 updates by @dependabot[bot] in #964
- docs: add links to Youtube and other socials by @gruyaume in #965
- chore: Test handling of Mobile Identity Contents by @ghislainbourgeois in #966
- feat: add backup and restore functions to Go API client by @gruyaume in #967
- docs: add Baicells and Vankom to list of commercial radios by @gruyaume in #968
- chore: add GitHub copilot instructions file by @gruyaume in #969
- feat: add pprof endpoints for profiling by @gruyaume in #957
- chore: Add unit tests for handleIdentityResponse by @ghislainbourgeois in #970
- chore: Add unit tests for handleAuthenticationResponse by @ghislainbourgeois in #972
- chore: improve API unit tests by @gruyaume in #971
- chore: Add unit tests for handleSecurityModeComplete by @ghislainbourgeois in #974
- feat: improve main dashboard [ui] by @gruyaume in #973
- chore: bump version to v1.1.0 by @gruyaume in #975
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Ella Core is a simple, reliable and secure core network for private 5G deployment.
Main features
- Deploy on generic hardware (amd64 or arm64)
- Consumes very little resources
- Packaged as 1 binary
- Install in 5 minutes using the snap, container image or from source
- Operate using a simple and intuitive modern UI
- Automate tasks with a complete RESTful API and Go client
- Validated with multiple device vendors (iOS, Android)
- Connect up to 1000 subscribers
- User Plane built with eBPF
- Achieve bitrates over 10Gbps
- Use private IP subnets with Network Address Translation (NAT) support
- Distributed as Free and Open Source Software (Apache 2.0)
- State-of-the-art documentation
Commits
- chore: bump the npm_dependencies group across 1 directory with 4 updates by @dependabot[bot] in #936
- chore: add unit testing structure for NGAP procedures by @gruyaume in #933
- chore: bump node version to 24 by @gruyaume in #937
- chore: simplify context management by @gruyaume in #938
- chore: bump github.com/mattn/go-sqlite3 from 1.14.32 to 1.14.33 in the go_dependencies group by @dependabot[bot] in #940
- feat: Add support for Path MTU Discovery by @ghislainbourgeois in #925
- chore: bump @tanstack/react-query from 5.90.14 to 5.90.16 in /ui in the npm_dependencies group by @dependabot[bot] in #941
- fix: dont pin BPF maps by @gruyaume in #942
- chore: simplify context management in SMF by @gruyaume in #939
- fix: remove session column in subscriber status [ui] by @gruyaume in #943
- chore: simplify SMF by @gruyaume in #944
- fix: Only send frag needed when traffic is N3 or N6 by @ghislainbourgeois in #945
- chore: replace KB with MB to represent DB size in dashboard [ui] by @gruyaume in #946
- chore: add ellanetworks website to footer [ui] by @gruyaume in #947
- chore: bump urllib3 from 2.6.0 to 2.6.3 by @dependabot[bot] in #948
- chore: avoid re-fetching sm context unnecessarily in SMF by @gruyaume in #949
- docs: Add network performance tuning how-to guide by @ghislainbourgeois in #950
- fix: Use upf_printk instead of bpf_printk by @ghislainbourgeois in #953
- fix: plain NAS message after resetting SIM card by @gruyaume in #951
- chore: simplify NAS service request message handling by @gruyaume in #954
- fix: only start 1 goroutine for collecting connection tracking garbage by @gruyaume in #955
- chore: simplify TEID resource management by @gruyaume in #956
Full Changelog: v0.7.0...v1.0.0
v0.7.0
What's Changed
- chore: remove PCF and unnecessary state by @gruyaume in #879
- perf: respond to PDU Session Establishment before adding IP neighbours to kernel by @gruyaume in #880
- chore: stabilize, speed up, and instrument IP allocation by @gruyaume in #881
- chore: remove unnecessary models and simplify existing ones by @gruyaume in #882
- chore: remove unused logic around non-3GPP network and EAP authentication by @gruyaume in #883
- chore: demove deadcode in AMF by @gruyaume in #885
- fix: Set default MTU for standard Ethernet by @ghislainbourgeois in #889
- chore: simplify NAS message handling by @gruyaume in #887
- chore: bump next from 16.0.7 to 16.0.9 in /ui by @dependabot[bot] in #891
- fix: use SQLite's VACUUM INTO to backup db by @gruyaume in #890
- feat: represent restore progress in UI by @gruyaume in #892
- fix: lock UE during NAS message handling by @gruyaume in #893
- fix: Fix multiple bugs in the QoS implementation by @ghislainbourgeois in #894
- chore: bump next from 16.0.9 to 16.0.10 in /ui by @dependabot[bot] in #896
- chore: simplify control plane state by @gruyaume in #895
- chore: remove unused types by @gruyaume in #897
- chore: simplify UPF by @gruyaume in #898
- chore: separate NGAP handlers in individual files by @gruyaume in #899
- chore: bump the npm_dependencies group in /ui with 8 updates by @dependabot[bot] in #903
- fix: re-add inbound network event log by @gruyaume in #904
- chore: bump the go_dependencies group with 7 updates by @dependabot[bot] in #901
- chore: bump the github_actions group with 4 updates by @dependabot[bot] in #902
- fix: use next available IP on collision by @gruyaume in #905
- fix: use correct network events link in dashboard [UI] by @gruyaume in #910
- fix: send security mode command with EA0 and IA0 by @gruyaume in #911
- fix: various improvements for parallel registrations by @gruyaume in #906
- chore: simplify in-memory context by @gruyaume in #912
- feat: add support for nia1/nea1 by @gruyaume in #913
- fix: Follow Prometheus best practices for metrics naming by @ghislainbourgeois in #915
- chore: simplify AMF<->SMF communication by @gruyaume in #914
- chore: Improve XDP action metrics by @ghislainbourgeois in #917
- perf: move db statement preparation to initialization by @gruyaume in #916
- fix: set IPv4 as the PDU session type when UE requests IPv4/IPv6 by @gruyaume in #919
- fix: handle inner NAS message container in registration request by @gruyaume in #920
- chore: Update performance documentation to reflect latest tests by @ghislainbourgeois in #922
- fix: remove deregistration initiated state by @gruyaume in #923
- chore!: turn on PRAGMA foreign key constraint, set synchronous to normal, and reduce number of DB calls by @gruyaume in #921
- fix: dont convert TAC from hex by @gruyaume in #928
- chore: bump the go_dependencies group with 3 updates by @dependabot[bot] in #929
- chore: run gosec from source in CI by @gruyaume in #931
- chore: bump the npm_dependencies group in /ui with 8 updates by @dependabot[bot] in #930
- chore: add db constraints to subscriber data by @gruyaume in #924
- chore: bump version to v0.7.0 by @gruyaume in #934
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- fix: release session when deleting subscriber by @gruyaume in #833
- chore: bump the github_actions group with 2 updates by @dependabot[bot] in #832
- chore: decode paging and AMF status indication messages by @gruyaume in #831
- chore: bump the npm_dependencies group in /ui with 9 updates by @dependabot[bot] in #835
- chore: bump go.uber.org/zap from 1.27.0 to 1.27.1 in the go_dependencies group by @dependabot[bot] in #834
- feat: add db table and queries for managing subscriber data usage by @gruyaume in #701
- feat: add HTTP APIs to view and manage subscriber usage by @gruyaume in #836
- feat: add subscriber usage UI page by @gruyaume in #837
- feat: add Usage Report support to SMF by @gruyaume in #838
- feat: lower default subnet to /22 by @gruyaume in #839
- feat: persist tab selection using query params [ui] by @gruyaume in #840
- feat: move events under radios page [ui] by @gruyaume in #841
- chore: replace URL parsing with PathValue for retrieving IDs in API handlers by @gruyaume in #842
- chore: combine subscriber usage endpoints and differentiate via group_by query param by @gruyaume in #843
- feat: add ability to edit usage data retention [ui] by @gruyaume in #844
- fix: Properly send Configuration Update Command by @ghislainbourgeois in #846
- feat: add usage report to UPF / XDP by @gruyaume in #845
- chore: use specific hash in core-tester by @gruyaume in #848
- feat: finalize usage reporting by @gruyaume in #847
- chore: bump the npm_dependencies group in /ui with 7 updates by @dependabot[bot] in #849
- chore: bump github.com/moby/moby/client from 0.1.0 to 0.2.1 in the go_dependencies group by @dependabot[bot] in #850
- chore: bump core-tester version by @gruyaume in #851
- feat: preferentially select AES algorithms for NAS integrity and ciphering by @gruyaume in #852
- chore: log reception of NAS messages by @gruyaume in #853
- docs: add UE supported equipment reference (including iPhone) by @gruyaume in #854
- chore: Clean up pointer code in eBPF by @ghislainbourgeois in #855
- chore: bump next from 16.0.6 to 16.0.7 in /ui by @dependabot[bot] in #856
- chore: simplify structs in PCF by @gruyaume in #857
- chore: remove state from UDM by @gruyaume in #858
- chore: simplify structs in SMF by @gruyaume in #859
- chore: add database UNIQUE constraints to subscriber, data network and policy names by @gruyaume in #860
- docs: add Motorola Moto G 5G (2024) to list of validated UEs by @gruyaume in #861
- chore: simplify structs in AMF by @gruyaume in #862
- chore: bump urllib3 from 2.5.0 to 2.6.0 by @dependabot[bot] in #864
- perf: fetch operator info once early from DB during NGAP procedures by @gruyaume in #865
- chore: bump golangci/golangci-lint-action from 9.1.0 to 9.2.0 in the github_actions group by @dependabot[bot] in #869
- chore: bump the npm_dependencies group in /ui with 8 updates by @dependabot[bot] in #870
- chore: bump golang.org/x/sys from 0.38.0 to 0.39.0 in the go_dependencies group by @dependabot[bot] in #868
- fix: Broadcast packets when MAC address is unknown by @ghislainbourgeois in #863
- chore: improve tracing around sending ngap/nas messages by @gruyaume in #871
- fix: ensure user exists during API refresh by @gruyaume in #873
- fix: Add IP of gateway to neighbours, not final destination by @ghislainbourgeois in #874
- fix: registration request after Ella Core restarts by @gruyaume in #875
- chore: streamline radio and audit loggers by @gruyaume in #876
- chore: simplify db operations during registration request by @gruyaume in #877
- chore: bump version to v0.6.0 by @gruyaume in #878
Full Changelog: v0.5.0...v0.6.0