so there is no way to control it ? this is whene i disconnect my galaxy s5: rad_recv: Accounting-Request packet from host 192.168.100.110 port 54860, id=30, length=207 Acct-Session-Id = "55CE1818-00000028" Acct-Status-Type = Stop Acct-Authentic = RADIUS User-Name = "test" NAS-IP-Address = 192.168.100.110 Vendor-29671-Attr-1 = 0x53797345646974 NAS-Port = 0 Called-Station-Id = "00-18-0A-7A-91-3C:Netweek" Calling-Station-Id = "78-4B-87-67-A9-1C" Framed-IP-Address = 192.168.1.33 NAS-Port-Type = Wireless-802.11 Connect-Info = "CONNECT 0Mbps 802.11b" Acct-Session-Time = 2164 Acct-Input-Packets = 23392 Acct-Output-Packets = 3204 Acct-Input-Octets = 1622224 Acct-Output-Octets = 1697605 Event-Timestamp = "Aug 18 2015 15:37:46 CEST" Acct-Terminate-Cause = Lost-Carrier # Executing section preacct from file /usr/local/etc/raddb/sites-enabled/default +group preacct { ++[preprocess] = ok ++update request { WARNING: Unknown module "expr" in string expansion "%" ++} # update request = noop [acct_unique] WARNING: Attribute NAS-Identifier was not found in request, unique ID MAY be inconsistent [acct_unique] Hashing 'Event-Timestamp = "Aug 18 2015 15:37:46 CEST",NAS-Port = 0,,NAS-IP-Address = 192.168.100.110,Acct-Session-Id = "55CE1818-00000028",User-Name = "test"' [acct_unique] Acct-Unique-Session-ID = "ea5e7375b2b03b02". ++[acct_unique] = ok +} # group preacct = ok # Executing section accounting from file /usr/local/etc/raddb/sites-enabled/default +group accounting { [sql] expand: %{User-Name} -> test [sql] sql_set_user escaped user --> 'test' [sql] expand: %{Acct-Session-Time} -> 2164 [sql] expand: %{Acct-Input-Gigawords} -> [sql] ... expanding second conditional [sql] expand: %{Acct-Input-Octets} -> 1622224 [sql] expand: %{Acct-Output-Gigawords} -> [sql] ... expanding second conditional [sql] expand: %{Acct-Output-Octets} -> 1697605 [sql] expand: %{Acct-Delay-Time} -> [sql] ... expanding second conditional [sql] expand: UPDATE radacct SET acctstoptime = '%S', acctsessiontime = '%{%{Acct-Session-Time}:-0}', acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' << 32 | '%{%{Acct-Input-Octets}:-0}', acctoutputoctets = '%{%{Acct-Output-Gigawords}:-0}' << 32 | '%{%{Acct-Output-Octets}:-0}', acctterminatecause = '%{Acct-Terminate-Cause}', acctstopdelay = '%{%{Acct-Delay-Time}:-0}', connectinfo_stop = '%{Connect-Info}' WHERE acctsessionid = '%{Acct-Session-Id}' AND username = '%{SQL-User-Name}' AND nasipaddress = '%{NAS-IP-Address}' -> UPDATE radacct SET acctstoptime = '2015-08-18 15:37:48', acctsessiontime = '2164', acctinputoctets = '0' << 32 | '1622224', acctoutputoctets = '0 [sql] expand: /usr/local/var/log/radius/sqltrace.sql -> /usr/local/var/log/radius/sqltrace.sql rlm_sql (sql): Reserving sql socket id: 16 rlm_sql_mysql: query: UPDATE radacct SET acctstoptime = '2015-08-18 15:37:48', acctsessiontime = '2164', acctinputoctets = '0' << 32 | '1622224', acctoutputoctets = '0' << 32 | '1697605', acctterminatecause = 'Lost-Carrier', acctstopdelay = '0', connectinfo_stop = 'CONNECT 0Mbps 802.11b' WHERE acctsessionid = '55CE1818-00000028' AND username = 'test' AND nasipaddress = '192.168.100.110' rlm_sql (sql): Released sql socket id: 16 ++[sql] = ok ++? if (noop) ? Evaluating (noop) -> FALSE ++? if (noop) -> FALSE ++[exec] = noop [attr_filter.accounting_response] expand: %{User-Name} -> test attr_filter: Matched entry DEFAULT at line 12 ++[attr_filter.accounting_response] = updated +} # group accounting = updated Sending Accounting-Response of id 30 to 192.168.100.110 port 54860 Finished request 18. Cleaning up request 18 ID 30 with timestamp +2222 Going to the next request Ready to process requests. 2015-08-18 15:12 GMT+02:00 Nick Lowe <nick.lowe@gmail.com>:
Hi Riccardo,
This is because roaming is taking place from one BSS to another, auth isn't therefore happening but you will observe a Stop for the old accounted session and a Start for the new. Consider it a useful optimisation.
You should, however, see an Acct-Multi-Session-Id to link the previous accounting session to the new accounting session when roaming occurs.
The Acct-Session-Id changes on some APs and is constant on others. Technically, the Acct-Session-Id is AP specific so it changing is reasonable behaviour.
You cannot use the Class attribute to track reliably as, with some APs, the value accounted with changes in accounting when 802.1X re-authentication takes place.
Regards,
Nick - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-- Riccardo Locatelli