event_timestamp = "DATEADD(SS, ${event_timestamp_epoch}, '19700101')"
+#######################################################################
+# 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}'"
+}
+
#######################################################################
# Authorization Queries
#######################################################################
FramedIPv6Address, \
FramedIPv6Prefix, \
FramedInterfaceId, \
- DelegatedIPv6Prefix) \
+ DelegatedIPv6Prefix \
+ ${..class.column_name}) \
VALUES(\
'%{Acct-Session-Id}', \
'%{Acct-Unique-Session-Id}', \
'', \
'', \
'', \
- '')"
+ '' \
+ ${....class.packet_xlat})"
query = "\
UPDATE ${....acct_table1} SET \
DelegatedIPv6Prefix, \
AcctStartDelay, \
AcctStopDelay, \
- XAscendSessionSvrKey) \
+ XAscendSessionSvrKey \
+ ${..class.column_name}) \
VALUES(\
'%{Acct-Session-Id}', \
'%{Acct-Unique-Session-Id}', \
'%{Delegated-IPv6-Prefix}', \
'%{Acct-Delay-Time}', \
'0', \
- '%{X-Ascend-Session-Svr-Key}')"
+ '%{X-Ascend-Session-Svr-Key}' \
+ ${....class.packet_xlat})"
#
# When using "sql_session_start", you should comment out
FramedInterfaceId, \
DelegatedIPv6Prefix, \
AcctStartDelay, \
- XAscendSessionSvrKey) \
+ XAscendSessionSvrKey \
+ ${..class.column_name}) \
VALUES(\
'%{Acct-Session-Id}', \
'%{Acct-Unique-Session-Id}', \
'%{Framed-Interface-Id}', \
'%{Delegated-IPv6-Prefix}', \
'0', \
- '%{X-Ascend-Session-Svr-Key}')"
+ '%{X-Ascend-Session-Svr-Key}' \
+ ${....class.packet_xlat})"
#
# When using "sql_session_start", you should comment out
FramedInterfaceId, \
DelegatedIPv6Prefix, \
AcctStartDelay, \
- AcctStopDelay) \
+ AcctStopDelay \
+ ${..class.column_name}) \
VALUES(\
'%{Acct-Session-Id}', \
'%{Acct-Unique-Session-Id}', \
'%{Framed-Interface-Id}', \
'%{Delegated-IPv6-Prefix}', \
'0', \
- '%{%{Acct-Delay-Time}:-0}')"
+ '%{%{Acct-Delay-Time}:-0}' \
+ ${....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(\
'%{User-Name}', \
'%{%{User-Password}:-CHAP-PASSWORD}', \
'%{reply:Packet-Type}', \
- '%S.%{expr:%M / 1000}')"
+ '%S.%{expr:%M / 1000}' \
+ ${..class.reply_xlat})"
}