From: Jorge Pereira Date: Thu, 29 Apr 2021 13:43:18 +0000 (-0300) Subject: Updated all SQL schema adding a new 'Class' column. (#4052) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d40227581619ccd1eefda61efebc0d65078fddf0;p=thirdparty%2Ffreeradius-server.git Updated all SQL schema adding a new 'Class' column. (#4052) It helps the admin to locate accounting packets. --- diff --git a/raddb/mods-config/sql/main/cassandra/queries.conf b/raddb/mods-config/sql/main/cassandra/queries.conf index a94a7167f9a..5a9267fd7fa 100644 --- a/raddb/mods-config/sql/main/cassandra/queries.conf +++ b/raddb/mods-config/sql/main/cassandra/queries.conf @@ -193,7 +193,8 @@ accounting { framedipv6address, \ framedipv6prefix, \ framedinterfaceid, \ - delegatedipv6prefix \ + delegatedipv6prefix, \ + class ) VALUES ( \ '%{Acct-Unique-Session-Id}', \ '%{Acct-Session-Id}', \ @@ -217,7 +218,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}' \ + '%{Delegated-IPv6-Prefix}', \ + '%{Class}' );" } @@ -253,7 +255,8 @@ accounting { framedipv6address, \ framedipv6prefix, \ framedinterfaceid, \ - delegatedipv6prefix \ + delegatedipv6prefix, \ + class \ ) VALUES ( \ '%{Acct-Unique-Session-Id}', \ '%{Acct-Session-Id}', \ @@ -276,7 +279,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}' \ + '%{Delegated-IPv6-Prefix}', \ + '%{Class}' \ ); \ APPLY BATCH;" } @@ -314,7 +318,8 @@ accounting { framedipv6prefix, \ framedinterfaceid, \ delegatedipv6prefix, \ - acctterminatecause \ + acctterminatecause, \ + class \ ) VALUES ( \ '%{Acct-Unique-Session-Id}', \ '%{Acct-Session-Id}', \ @@ -338,7 +343,8 @@ accounting { '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ '%{Delegated-IPv6-Prefix}', \ - '%{Acct-Terminate-Cause}' \ + '%{Acct-Terminate-Cause}', \ + '%{Class}' \ ); \ APPLY BATCH;" } diff --git a/raddb/mods-config/sql/main/cassandra/schema.sql b/raddb/mods-config/sql/main/cassandra/schema.sql index 72e7e1d8499..d97b77366e2 100644 --- a/raddb/mods-config/sql/main/cassandra/schema.sql +++ b/raddb/mods-config/sql/main/cassandra/schema.sql @@ -43,6 +43,7 @@ CREATE TABLE radacct ( framedipv6prefix text, framedinterfaceid text, delegatedipv6prefix text, + class text, PRIMARY KEY (acctuniqueid) ); diff --git a/raddb/mods-config/sql/main/mssql/queries.conf b/raddb/mods-config/sql/main/mssql/queries.conf index 0cbece561ad..ed4421ff519 100644 --- a/raddb/mods-config/sql/main/mssql/queries.conf +++ b/raddb/mods-config/sql/main/mssql/queries.conf @@ -177,7 +177,8 @@ accounting { FramedInterfaceId, \ DelegatedIPv6Prefix, \ AcctStartDelay, \ - AcctStopDelay) \ + AcctStopDelay, \ + Class) \ VALUES(\ '%{Acct-Session-Id}', \ '%{Acct-Unique-Session-Id}', \ @@ -204,7 +205,8 @@ accounting { '%{Framed-Interface-Id}', \ '%{Delegated-IPv6-Prefix}', \ '%{Acct-Delay-Time}', \ - '0')" + '0', \ + '%{Class}')" query = "\ UPDATE ${....acct_table1} \ @@ -224,7 +226,8 @@ accounting { FramedIPv6Address = '%{Framed-IPv6-Address}', \ FramedIPv6Prefix = '%{Framed-IPv6-Prefix}', \ FramedInterfaceId = '%{Framed-Interface-Id}', \ - DelegatedIPv6Prefix = '%{Delegated-IPv6-Prefix}' \ + DelegatedIPv6Prefix = '%{Delegated-IPv6-Prefix}', \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-ID}' \ AND AcctStopTime = 0" @@ -251,7 +254,8 @@ accounting { FramedIPv6Prefix, \ FramedInterfaceId, \ DelegatedIPv6Prefix, \ - AcctStartDelay) \ + AcctStartDelay, \ + Class) \ VALUES(\ '%{Acct-Session-Id}', \ '%{Acct-Unique-Session-Id}', \ @@ -274,7 +278,8 @@ accounting { '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ '%{Delegated-IPv6-Prefix}', \ - '0')" + '0' \ + '%{Class}')" } stop { @@ -287,7 +292,8 @@ accounting { AcctOutputOctets = convert(bigint, '%{%{Acct-Output-Gigawords}:-0}' * POWER(2.0, 32)) | '%{%{Acct-Output-Octets}:-0}', \ AcctTerminateCause = '%{Acct-Terminate-Cause}', \ AcctStopDelay = '%{%{Acct-Delay-Time}:-0}', \ - ConnectInfo_stop = '%{Connect-Info}' \ + ConnectInfo_stop = '%{Connect-Info}', \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-ID}' \ AND AcctStopTime = 0" @@ -318,7 +324,8 @@ accounting { FramedInterfaceId, \ DelegatedIPv6Prefix, \ AcctStartDelay, \ - AcctStopDelay) \ + AcctStopDelay, \ + Class) \ VALUES(\ '%{Acct-Session-Id}', \ '%{Acct-Unique-Session-Id}', \ @@ -346,7 +353,8 @@ accounting { '%{Framed-Interface-Id}', \ '%{Delegated-IPv6-Prefix}', \ '0', \ - '%{%{Acct-Delay-Time}:-0}')" + '%{%{Acct-Delay-Time}:-0}', \ + '%{Class}')" } } } diff --git a/raddb/mods-config/sql/main/mssql/schema.sql b/raddb/mods-config/sql/main/mssql/schema.sql index c2ef5592c96..3361015685d 100644 --- a/raddb/mods-config/sql/main/mssql/schema.sql +++ b/raddb/mods-config/sql/main/mssql/schema.sql @@ -46,7 +46,8 @@ CREATE TABLE [radacct] ( [FramedInterfaceId] [varchar] (44) NOT NULL, [DelegatedIPv6Prefix] [varchar] (45) NOT NULL, [AcctStartDelay] [int] NULL, - [AcctStopDelay] [int] NULL + [AcctStopDelay] [int] NULL, + [Class] [varchar] (64) NULL ) ON [PRIMARY] GO @@ -79,6 +80,7 @@ ALTER TABLE [radacct] WITH NOCHECK ADD CONSTRAINT [DF_radacct_DelegatedIPv6Prefix] DEFAULT ('') FOR [DelegatedIPv6Prefix], CONSTRAINT [DF_radacct_AcctStartDelay] DEFAULT (null) FOR [AcctStartDelay], CONSTRAINT [DF_radacct_AcctStopDelay] DEFAULT (null) FOR [AcctStopDelay], + CONSTRAINT [DF_radacct_Class] DEFAULT (null) FOR [Class], CONSTRAINT [PK_radacct] PRIMARY KEY NONCLUSTERED ( [RadAcctId] @@ -118,6 +120,9 @@ GO CREATE INDEX [NASIPAddress] ON [radacct]([NASIPAddress]) ON [PRIMARY] GO +CREATE INDEX [Class] ON [radacct]([Class]) ON [PRIMARY] +GO + -- For use by onoff CREATE INDEX [RadacctBulkClose] ON [radacct]([NASIPAddress],[AcctStartTime]) WHERE [AcctStopTime] IS NULL ON [PRIMARY] GO diff --git a/raddb/mods-config/sql/main/mysql/queries.conf b/raddb/mods-config/sql/main/mysql/queries.conf index bc7ace8fe46..8f4625aec12 100644 --- a/raddb/mods-config/sql/main/mysql/queries.conf +++ b/raddb/mods-config/sql/main/mysql/queries.conf @@ -182,7 +182,7 @@ accounting { acctoutputoctets, calledstationid, callingstationid, \ acctterminatecause, servicetype, framedprotocol, \ framedipaddress, framedipv6address, framedipv6prefix, \ - framedinterfaceid, delegatedipv6prefix" + framedinterfaceid, delegatedipv6prefix, class" type { accounting-on { @@ -247,7 +247,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}')" + '%{Delegated-IPv6-Prefix}', \ + '%{Class}')" # # Key constraints prevented us from inserting a new session, @@ -257,7 +258,8 @@ accounting { UPDATE ${....acct_table1} SET \ acctstarttime = ${....event_timestamp}, \ acctupdatetime = ${....event_timestamp}, \ - connectinfo_start = '%{Connect-Info}' \ + connectinfo_start = '%{Connect-Info}', \ + class = '%{Class}' \ WHERE acctuniqueid = '%{Acct-Unique-Session-Id}'" } @@ -283,7 +285,8 @@ accounting { acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' \ << 32 | '%{%{Acct-Input-Octets}:-0}', \ acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' \ - << 32 | '%{%{Acct-Output-Octets}:-0}' \ + << 32 | '%{%{Acct-Output-Octets}:-0}', \ + class = '%{Class}' \ WHERE acctuniqueid = '%{Acct-Unique-Session-Id}'" # @@ -319,7 +322,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}')" + '%{Delegated-IPv6-Prefix}', \ + '%{Class}')" } stop { @@ -335,7 +339,8 @@ accounting { acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' \ << 32 | '%{%{Acct-Output-Octets}:-0}', \ acctterminatecause = '%{Acct-Terminate-Cause}', \ - connectinfo_stop = '%{Connect-Info}' \ + connectinfo_stop = '%{Connect-Info}', \ + class = '%{Class}' \ WHERE acctuniqueid = '%{Acct-Unique-Session-Id}'" # @@ -371,7 +376,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}')" + '%{Delegated-IPv6-Prefix}', \ + '%{Class}')" } } } diff --git a/raddb/mods-config/sql/main/mysql/schema.sql b/raddb/mods-config/sql/main/mysql/schema.sql index 3df995f0304..2fa9f5888d7 100644 --- a/raddb/mods-config/sql/main/mysql/schema.sql +++ b/raddb/mods-config/sql/main/mysql/schema.sql @@ -44,6 +44,7 @@ CREATE TABLE radacct ( framedipv6prefix varchar(45) NOT NULL default '', framedinterfaceid varchar(44) NOT NULL default '', delegatedipv6prefix varchar(45) NOT NULL default '', + class varchar(64) default NULL, PRIMARY KEY (radacctid), UNIQUE KEY acctuniqueid (acctuniqueid), KEY username (username), diff --git a/raddb/mods-config/sql/main/ndb/schema.sql b/raddb/mods-config/sql/main/ndb/schema.sql index 03699a6918f..2897494ce17 100644 --- a/raddb/mods-config/sql/main/ndb/schema.sql +++ b/raddb/mods-config/sql/main/ndb/schema.sql @@ -46,6 +46,7 @@ CREATE TABLE radacct ( framedipv6prefix varchar(45) NOT NULL default '', framedinterfaceid varchar(44) NOT NULL default '', delegatedipv6prefix varchar(45) NOT NULL default '', + class varchar(64) default NULL, PRIMARY KEY (radacctid), UNIQUE KEY acctuniqueid (acctuniqueid), KEY username (username), diff --git a/raddb/mods-config/sql/main/oracle/queries.conf b/raddb/mods-config/sql/main/oracle/queries.conf index 261ed011c3f..7be44903262 100644 --- a/raddb/mods-config/sql/main/oracle/queries.conf +++ b/raddb/mods-config/sql/main/oracle/queries.conf @@ -163,7 +163,8 @@ accounting { AcctSessionTime = ROUND((${....event_timestamp} - \ TO_DATE(TO_CHAR(acctstarttime, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*86400), \ AcctTerminateCause='%{%{Acct-Terminate-Cause}:-NAS-Reboot}', \ - AcctStopDelay = %{%{Acct-Delay-Time}:-0} \ + AcctStopDelay = %{%{Acct-Delay-Time}:-0}, \ + Class = '%{Class}' \ WHERE AcctStopTime IS NULL \ AND NASIPAddress = '%{NAS-IP-Address}' \ AND AcctStartTime <= ${....event_timestamp}" @@ -212,7 +213,8 @@ accounting { FramedInterfaceId, \ DelegatedIPv6Prefix, \ AcctStartDelay, \ - AcctStopDelay) \ + AcctStopDelay, \ + Class) \ VALUES(\ '', \ '%{Acct-Session-Id}', \ @@ -241,7 +243,8 @@ accounting { '%{Framed-Interface-Id}', \ '%{Delegated-IPv6-Prefix}', \ '%{Acct-Delay-Time}', \ - '0')" + '0', \ + '%{Class}')" query = "\ UPDATE ${....acct_table1} \ @@ -266,7 +269,8 @@ accounting { AcctInputOctets = '%{Acct-Input-Octets}' + \ ('%{%{Acct-Input-Gigawords}:-0}' * 4294967296), \ AcctOutputOctets = '%{Acct-Output-Octets}' + \ - ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296) \ + ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296), \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-ID}' \ AND AcctStopTime IS NULL" @@ -291,7 +295,8 @@ accounting { ServiceType, \ FramedProtocol, \ FramedIPAddress, \ - AcctStartDelay) \ + AcctStartDelay, \ + Class) \ VALUES(\ '', \ '%{Acct-Session-Id}', \ @@ -314,7 +319,8 @@ accounting { '%{Service-Type}', \ '%{Framed-Protocol}', \ '%{Framed-IP-Address}', \ - '0')" + '0', \ + '%{Class}')" } stop { @@ -329,7 +335,8 @@ accounting { ('%{%{Acct-Output-Gigawords}:-0}' * 4294967296), \ AcctTerminateCause = '%{Acct-Terminate-Cause}', \ AcctStopDelay = '%{%{Acct-Delay-Time}:-0}', \ - ConnectInfo_stop = '%{Connect-Info}' \ + ConnectInfo_stop = '%{Connect-Info}', \ + Class = '%{Class}' WHERE AcctUniqueId = '%{Acct-Unique-Session-ID}' \ AND AcctStopTime IS NULL" @@ -358,7 +365,8 @@ accounting { FramedProtocol, \ FramedIPAddress, \ AcctStartDelay, \ - AcctStopDelay) \ + AcctStopDelay, \ + Class) \ VALUES(\ '', \ '%{Acct-Session-Id}', \ @@ -386,7 +394,8 @@ accounting { '%{Framed-Protocol}', \ '%{Framed-IP-Address}', \ '0', \ - '%{%{Acct-Delay-Time}:-0}')" + '%{%{Acct-Delay-Time}:-0}', \ + '%{Class}')" } # diff --git a/raddb/mods-config/sql/main/oracle/schema.sql b/raddb/mods-config/sql/main/oracle/schema.sql index 1f6aa493a72..7cda4fef308 100644 --- a/raddb/mods-config/sql/main/oracle/schema.sql +++ b/raddb/mods-config/sql/main/oracle/schema.sql @@ -40,7 +40,8 @@ CREATE TABLE radacct ( framedinterfaceid VARCHAR(44), delegatedipv6prefix VARCHAR(45), acctstartdelay NUMERIC(12), - acctstopdelay NUMERIC(12) + acctstopdelay NUMERIC(12), + class VARCHAR(64) ); CREATE UNIQUE INDEX radacct_idx0 diff --git a/raddb/mods-config/sql/main/postgresql/queries.conf b/raddb/mods-config/sql/main/postgresql/queries.conf index 0015f096b69..86a3ba1387d 100644 --- a/raddb/mods-config/sql/main/postgresql/queries.conf +++ b/raddb/mods-config/sql/main/postgresql/queries.conf @@ -223,7 +223,8 @@ accounting { FramedIpv6Address, \ FramedIpv6Prefix, \ FramedInterfaceId, \ - DelegatedIpv6Prefix" + DelegatedIpv6Prefix, \ + Class" type { accounting-on { @@ -233,7 +234,8 @@ accounting { AcctStopTime = ${....event_timestamp}, \ AcctUpdateTime = ${....event_timestamp}, \ AcctSessionTime = (${....event_timestamp_epoch} - EXTRACT(EPOCH FROM(AcctStartTime))), \ - AcctTerminateCause = '%{%{Acct-Terminate-Cause}:-NAS-Reboot}' \ + AcctTerminateCause = '%{%{Acct-Terminate-Cause}:-NAS-Reboot}', \ + Class = '%{Class}' \ WHERE AcctStopTime IS NULL \ AND NASIPAddress= '%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}}' \ AND AcctStartTime <= ${....event_timestamp}" @@ -282,13 +284,15 @@ accounting { NULLIF('%{Framed-IPv6-Address}', '')::inet, \ NULLIF('%{Framed-IPv6-Prefix}', '')::inet, \ NULLIF('%{Framed-Interface-Id}', ''), \ - NULLIF('%{Delegated-IPv6-Prefix}', '')::inet) \ + NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, \ + '%{Class}') \ ON CONFLICT (AcctUniqueId) \ DO UPDATE \ SET \ AcctStartTime = ${....event_timestamp}, \ AcctUpdateTime = ${....event_timestamp}, \ - ConnectInfo_start = '%{Connect-Info}' \ + ConnectInfo_start = '%{Connect-Info}', \ + Class = '%{Class}' \ WHERE ${....acct_table1}.AcctUniqueId = '%{Acct-Unique-Session-Id}' \ AND ${....acct_table1}.AcctStopTime IS NULL" @@ -298,7 +302,8 @@ accounting { SET \ AcctStartTime = ${....event_timestamp}, \ AcctUpdateTime = ${....event_timestamp}, \ - ConnectInfo_start = '%{Connect-Info}' \ + ConnectInfo_start = '%{Connect-Info}', \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}'" } @@ -317,7 +322,8 @@ accounting { AcctInputOctets = (('%{%{Acct-Input-Gigawords}:-0}'::bigint << 32) + \ '%{%{Acct-Input-Octets}:-0}'::bigint), \ AcctOutputOctets = (('%{%{Acct-Output-Gigawords}:-0}'::bigint << 32) + \ - '%{%{Acct-Output-Octets}:-0}'::bigint) \ + '%{%{Acct-Output-Octets}:-0}'::bigint), \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}' \ AND AcctStopTime IS NULL" @@ -352,7 +358,8 @@ accounting { NULLIF('%{Framed-IPv6-Address}', '')::inet, \ NULLIF('%{Framed-IPv6-Prefix}', '')::inet, \ NULLIF('%{Framed-Interface-Id}', ''), \ - NULLIF('%{Delegated-IPv6-Prefix}', '')::inet) \ + NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, \ + '%{Class}') \ ON CONFLICT (AcctUniqueId) \ DO NOTHING" } @@ -375,7 +382,8 @@ accounting { FramedIPv6Prefix = NULLIF('%{Framed-IPv6-Prefix}', '')::inet, \ FramedInterfaceId = NULLIF('%{Framed-Interface-Id}', ''), \ DelegatedIPv6Prefix = NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, \ - ConnectInfo_stop = '%{Connect-Info}' \ + ConnectInfo_stop = '%{Connect-Info}', \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}' \ AND AcctStopTime IS NULL" @@ -410,7 +418,8 @@ accounting { NULLIF('%{Framed-IPv6-Address}', '')::inet, \ NULLIF('%{Framed-IPv6-Prefix}', '')::inet, \ NULLIF('%{Framed-Interface-Id}', ''), \ - NULLIF('%{Delegated-IPv6-Prefix}', '')::inet) \ + NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, \ + '%{Class}') \ ON CONFLICT (AcctUniqueId) \ DO NOTHING" @@ -432,7 +441,8 @@ accounting { FramedIPv6Prefix = NULLIF('%{Framed-IPv6-Prefix}', '')::inet, \ FramedInterfaceId = NULLIF('%{Framed-Interface-Id}', ''), \ DelegatedIPv6Prefix = NULLIF('%{Delegated-IPv6-Prefix}', '')::inet, \ - ConnectInfo_stop = '%{Connect-Info}' \ + ConnectInfo_stop = '%{Connect-Info}', \ + Class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}'" } diff --git a/raddb/mods-config/sql/main/postgresql/schema.sql b/raddb/mods-config/sql/main/postgresql/schema.sql index d518315fae0..9a73c7cbbff 100644 --- a/raddb/mods-config/sql/main/postgresql/schema.sql +++ b/raddb/mods-config/sql/main/postgresql/schema.sql @@ -42,7 +42,8 @@ CREATE TABLE radacct ( FramedIPv6Address inet, FramedIPv6Prefix inet, FramedInterfaceId text, - DelegatedIPv6Prefix inet + DelegatedIPv6Prefix inet, + Class text ); -- This index may be useful.. -- CREATE UNIQUE INDEX radacct_whoson on radacct (AcctStartTime, nasipaddress); diff --git a/raddb/mods-config/sql/main/sqlite/queries.conf b/raddb/mods-config/sql/main/sqlite/queries.conf index f4d84e80364..e3abb905c09 100644 --- a/raddb/mods-config/sql/main/sqlite/queries.conf +++ b/raddb/mods-config/sql/main/sqlite/queries.conf @@ -194,7 +194,8 @@ accounting { framedipv6address, \ framedipv6prefix, \ framedinterfaceid, \ - delegatedipv6prefix" + delegatedipv6prefix, \ + class" type { accounting-on { @@ -208,7 +209,8 @@ accounting { acctsessiontime = \ (${....event_timestamp_epoch} \ - acctstarttime), \ - acctterminatecause = '%{Acct-Terminate-Cause}' \ + acctterminatecause = '%{Acct-Terminate-Cause}', \ + class = '%{Class}' \ WHERE acctstoptime IS NULL \ AND nasipaddress = '%{NAS-IP-Address}' \ AND acctstarttime <= ${....event_timestamp}" @@ -260,7 +262,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}')" + '%{Delegated-IPv6-Prefix}', \ + '%{Class}')" # # Key constraints prevented us from inserting a new session, @@ -270,7 +273,8 @@ accounting { UPDATE ${....acct_table1} SET \ acctstarttime = ${....event_timestamp}, \ acctupdatetime = ${....event_timestamp}, \ - connectinfo_start = '%{Connect-Info}' \ + connectinfo_start = '%{Connect-Info}', \ + class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}'" } @@ -294,7 +298,8 @@ accounting { acctinputoctets = %{%{Acct-Input-Gigawords}:-0} \ << 32 | %{%{Acct-Input-Octets}:-0}, \ acctoutputoctets = %{%{Acct-Output-Gigawords}:-0} \ - << 32 | %{%{Acct-Output-Octets}:-0} \ + << 32 | %{%{Acct-Output-Octets}:-0}, \ + class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}'" # @@ -332,7 +337,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}')" + '%{Delegated-IPv6-Prefix}', \ + '%{Class}')" } stop { @@ -348,7 +354,8 @@ accounting { acctoutputoctets = %{%{Acct-Output-Gigawords}:-0} \ << 32 | %{%{Acct-Output-Octets}:-0}, \ acctterminatecause = '%{Acct-Terminate-Cause}', \ - connectinfo_stop = '%{Connect-Info}' \ + connectinfo_stop = '%{Connect-Info}', \ + class = '%{Class}' \ WHERE AcctUniqueId = '%{Acct-Unique-Session-Id}'" # @@ -386,7 +393,8 @@ accounting { '%{Framed-IPv6-Address}', \ '%{Framed-IPv6-Prefix}', \ '%{Framed-Interface-Id}', \ - '%{Delegated-IPv6-Prefix}')" + '%{Delegated-IPv6-Prefix}', \ + '%{Class}')" } } } diff --git a/raddb/mods-config/sql/main/sqlite/schema.sql b/raddb/mods-config/sql/main/sqlite/schema.sql index 077bff2e3e9..790ce2d9121 100644 --- a/raddb/mods-config/sql/main/sqlite/schema.sql +++ b/raddb/mods-config/sql/main/sqlite/schema.sql @@ -39,7 +39,8 @@ CREATE TABLE radacct ( framedipv6address varchar(45) NOT NULL default '', framedipv6prefix varchar(45) NOT NULL default '', framedinterfaceid varchar(44) NOT NULL default '', - delegatedipv6prefix varchar(45) NOT NULL default '' + delegatedipv6prefix varchar(45) NOT NULL default '', + class varchar(64) default NULL ); CREATE UNIQUE INDEX acctuniqueid ON radacct(acctuniqueid);