From aebf757f26dd631951760b01bdf1830dd254175b Mon Sep 17 00:00:00 2001 From: Tygozwolle Date: Fri, 24 Jul 2026 16:44:44 +0200 Subject: [PATCH] feat: define RADIUS database entities and initialize PostgreSQL schema with FreeRADIUS support --- radiuscontroller/Models/RadiusEntities.cs | 23 +++++++++++++++++++---- sql/init.sql | 12 +++++++++--- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/radiuscontroller/Models/RadiusEntities.cs b/radiuscontroller/Models/RadiusEntities.cs index 206fcb6..1bbd726 100644 --- a/radiuscontroller/Models/RadiusEntities.cs +++ b/radiuscontroller/Models/RadiusEntities.cs @@ -105,11 +105,11 @@ public class RadAcct [Column("acctauthentic")] public string? AcctAuthentic { get; set; } - [Column("connectinfo_in")] - public string? ConnectInfoIn { get; set; } + [Column("connectinfo_start")] + public string? ConnectInfoStart { get; set; } - [Column("connectinfo_out")] - public string? ConnectInfoOut { get; set; } + [Column("connectinfo_stop")] + public string? ConnectInfoStop { get; set; } [Column("acctinputoctets")] public long? AcctInputOctets { get; set; } @@ -134,6 +134,21 @@ public class RadAcct [Column("framedipaddress")] public string? FramedIpAddress { get; set; } + + [Column("framedipv6address")] + public string? FramedIpV6Address { get; set; } + + [Column("framedipv6prefix")] + public string? FramedIpV6Prefix { get; set; } + + [Column("framedinterfaceid")] + public string? FramedInterfaceId { get; set; } + + [Column("delegatedipv6prefix")] + public string? DelegatedIpV6Prefix { get; set; } + + [Column("class")] + public string? Class { get; set; } } [Table("guest_profiles")] diff --git a/sql/init.sql b/sql/init.sql index 077db02..9204dfe 100644 --- a/sql/init.sql +++ b/sql/init.sql @@ -60,8 +60,8 @@ CREATE TABLE IF NOT EXISTS radacct ( acctinterval INT DEFAULT NULL, acctsessiontime BIGINT DEFAULT NULL, acctauthentic VARCHAR(32) DEFAULT NULL, - connectinfo_in VARCHAR(50) DEFAULT NULL, - connectinfo_out VARCHAR(50) DEFAULT NULL, + connectinfo_start VARCHAR(50) DEFAULT NULL, + connectinfo_stop VARCHAR(50) DEFAULT NULL, acctinputoctets BIGINT DEFAULT NULL, acctoutputoctets BIGINT DEFAULT NULL, calledstationid VARCHAR(50) NOT NULL DEFAULT '', @@ -69,10 +69,16 @@ CREATE TABLE IF NOT EXISTS radacct ( acctterminatecause VARCHAR(32) NOT NULL DEFAULT '', servicetype VARCHAR(32) DEFAULT NULL, framedprotocol VARCHAR(32) DEFAULT NULL, - framedipaddress VARCHAR(15) NOT NULL DEFAULT '' + framedipaddress VARCHAR(15) NOT NULL DEFAULT '', + framedipv6address VARCHAR(45) NOT NULL DEFAULT '', + framedipv6prefix VARCHAR(45) NOT NULL DEFAULT '', + framedinterfaceid VARCHAR(44) NOT NULL DEFAULT '', + delegatedipv6prefix VARCHAR(45) NOT NULL DEFAULT '', + class VARCHAR(64) DEFAULT NULL ); CREATE INDEX IF NOT EXISTS radacct_username ON radacct (username); CREATE INDEX IF NOT EXISTS radacct_active ON radacct (acctstoptime) WHERE acctstoptime IS NULL; +CREATE INDEX IF NOT EXISTS radacct_acctuniqueid ON radacct (acctuniqueid); CREATE TABLE IF NOT EXISTS nas ( id SERIAL PRIMARY KEY,