event_timestamp = "FROM_UNIXTIME(${event_timestamp_epoch})"
+#######################################################################
+# Query config: Class attribute
+#######################################################################
+#
+# 3.0.22 and later have a "class" column in the accounting table.
+#
+# However, we do NOT want to break existing configurations by adding
+# the Class attribute to the default queries. If we did that, then
+# systems using newer versions of the server would fail, because
+# there is no "class" column in their accounting tables.
+#
+# The solution to that is the following "class" subsection. If your
+# database has a "class" column for the various tables, then you can
+# uncomment the configuration items here. The queries below will
+# then automatically insert the Class attribute into radacct,
+# radpostauth, etc.
+#
+class {
+ #
+ # Delete the '#' character from each of the configuration
+ # items in this section. This change puts the Class
+ # attribute into the various tables. Leave the double-quoted
+ # string there, as the value for the configuration item.
+ #
+ # See also policy.d/accounting, and the "insert_acct_class"
+ # policy. You will need to list (or uncomment)
+ # "insert_acct_class" in the "post-auth" section in order to
+ # create a Class attribute.
+ #
+ column_name = # ", class"
+ packet_xlat = # ", '%{Class}'"
+ reply_xlat = # ", '%{Reply:Class}'"
+}
+
#######################################################################
# Default profile
#######################################################################
acctoutputoctets, calledstationid, callingstationid, \
acctterminatecause, servicetype, framedprotocol, \
framedipaddress, framedipv6address, framedipv6prefix, \
- framedinterfaceid, delegatedipv6prefix"
+ framedinterfaceid, delegatedipv6prefix ${..class.column_name}"
type {
accounting-on {
'', \
'', \
'', \
- '')"
+ '' \
+ ${....class.packet_xlat})"
query = "\
UPDATE ${....acct_table1} SET \
'%{Framed-IPv6-Address}', \
'%{Framed-IPv6-Prefix}', \
'%{Framed-Interface-Id}', \
- '%{Delegated-IPv6-Prefix}')"
+ '%{Delegated-IPv6-Prefix}' \
+ ${....class.packet_xlat})"
#
# When using "sql_session_start", you should comment out
'%{Framed-IPv6-Address}', \
'%{Framed-IPv6-Prefix}', \
'%{Framed-Interface-Id}', \
- '%{Delegated-IPv6-Prefix}')"
+ '%{Delegated-IPv6-Prefix}' \
+ ${....class.packet_xlat})"
#
# When using "sql_session_start", you should comment out
'%{Framed-IPv6-Address}', \
'%{Framed-IPv6-Prefix}', \
'%{Framed-Interface-Id}', \
- '%{Delegated-IPv6-Prefix}')"
+ '%{Delegated-IPv6-Prefix}' \
+ ${....class.packet_xlat})"
#
# When using "sql_session_start", you should comment out
query = "\
INSERT INTO ${..postauth_table} \
- (username, pass, reply, authdate) \
+ (username, pass, reply, authdate ${..class.column_name}) \
VALUES ( \
'%{SQL-User-Name}', \
'%{%{User-Password}:-%{Chap-Password}}', \
'%{reply:Packet-Type}', \
- '%S.%M')"
+ '%S.%M' \
+ ${..class.reply_xlat})"
}