Dell Powerconnect W-ClearPass Virtual Appliances W-ClearPass Guest 6.0 Deploym - Page 271

GetCallingStationTraffic(), GetCurrentSession(), 02X-%02X-%02X-%02X-%02X-%02X

Page 271 highlights

See "GetTraffic() " on page 274 for details on how to specify the time interval. GetCallingStationTraffic() GetCallingStationTraffic($callingstationid, $from_time, $to_time = null, $in_out = null, $mac_format = null) Calculate sum of traffic counters in a time interval. Sessions are summed if they have the same Calling-Station-Id attribute as that specified in the RADIUS Access-Request. If no Calling-Station-Id attribute was included in the request, returns zero. Because different NAS equipment can send differently-formatted MAC addresses in the Calling-Station-Id attribute, the $mac_format argument may be specified. This should be a sprintf-style format string that accepts 6 arguments (the octets of the MAC address). The default if not specified is the IEEE 802 standard format, %02X-%02X-%02X-%02X-%02X-%02X - that is, uppercase hexadecimal with each octet separated with a hyphen. This string matches what ClearPass Guest sees from the NAS. The time interval specified by $from_time and optionally $to_time is also used to narrow the search. If $to_time is not specified, $from_time is a "look back" time, that is, the time interval in seconds before the current time. If $to_time is specified, the interval considered is between $from_time and $to_time. $in_out may be "in" to count only input octets, "out" to count only output octets, or any other value to count both input and output octets towards the traffic total. Examples: l Use the following as the condition expression for a RADIUS role attribute. Authorizes a user only if their total traffic (in + out) in the past day does not exceed 10 MB. Be aware that the attribute with this condition expression will never be included in the response! l return GetUserTraffic(86400) > 10485760 && AccessReject() l Like the above, but only considers output (that is, user downloads): l return GetUserTraffic(86400,'out') > 10485760 && AccessReject() l Another way to limit the past 30 days downloads to 100 MB: l return GetUserTraffic($now - 86400*30, $now, 'out') > 100*1024*1024 && AccessReject() l Limit by MAC address, 50 MB download in past 24 hours: return GetCallingStationTraffic(86400, 'out') > 50000000 && AccessReject() GetCurrentSession() GetCurrentSession($criteria) Looks up the details for an active session, based on the specified criteria. NOTE: This is a multi-purpose function that has a very flexible query interface; for ease of use, consider using one of the related functions GetCallingStationCurrentSession(), GetIpAddressCurrentSession(), or GetUserCurrentSession(). Returns null if there is no matching session, otherwise returns a single session array - a typical result follows: array ( 'id' => '2073', 'acctsessionid' => '4a762dbf00000002', 'acctuniqueid' => 'c199b5a94ebf5184', 'username' => '[email protected]', 'realm' => '', 'role_name' => 'Guest', 'nasipaddress' => '192.168.2.20', Dell Networking W-ClearPass Guest 6.0 | Deployment Guide GetCallingStationTraffic() | 271

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320

See
"GetTraffic() " on page 274
for details on how to specify the time interval.
GetCallingStationTraffic()
GetCallingStationTraffic($callingstationid, $from_time, $to_time = null,
$in_out = null, $mac_format = null)
Calculate sum of traffic counters in a time interval. Sessions are summed if they have the same Calling-Station-Id
attribute as that specified in the RADIUS Access-Request.
If no Calling-Station-Id attribute was included in the request, returns zero.
Because different NAS equipment can send differently-formatted MAC addresses in the Calling-Station-Id attribute,
the
$mac_format
argument may be specified. This should be a sprintf-style format string that accepts 6 arguments
(the octets of the MAC address). The default if not specified is the IEEE 802 standard format,
%02X-%02X-%02X-%02X-%02X-%02X
– that is, uppercase hexadecimal with each octet separated with a hyphen.
This string matches what ClearPass Guest sees from the NAS.
The time interval specified by
$from_time
and optionally
$to_time
is also used to narrow the search.
If
$to_time
is not specified,
$from_time
is a “look back” time, that is, the time interval in seconds before the
current time.
If
$to_time
is specified, the interval considered is between
$from_time
and
$to_time
.
$in_out
may be “in” to count only input octets, “out” to count only output octets, or any other value to count
both input and output octets towards the traffic total.
Examples:
l
Use the following as the condition expression for a RADIUS role attribute. Authorizes a user only if their total
traffic (in + out) in the past day does not exceed 10 MB. Be aware that the attribute with this condition
expression will never be included in the response!
l
return GetUserTraffic(86400) > 10485760 && AccessReject()
l
Like the above, but only considers output (that is, user downloads):
l
return GetUserTraffic(86400,'out') > 10485760 && AccessReject()
l
Another way to limit the past 30 days downloads to 100 MB:
l
return GetUserTraffic($now - 86400*30, $now, 'out') > 100*1024*1024 && AccessReject()
l
Limit by MAC address, 50 MB download in past 24 hours:
return GetCallingStationTraffic(86400, 'out') > 50000000 && AccessReject()
GetCurrentSession()
GetCurrentSession($criteria)
Looks up the details for an active session, based on the specified criteria.
NOTE: This is a multi-purpose function that has a very flexible query interface; for ease of use, consider using one of the related
functions
GetCallingStationCurrentSession()
,
GetIpAddressCurrentSession()
, or
GetUserCurrentSession()
.
Returns null if there is no matching session, otherwise returns a single session array – a typical result follows:
array (
'id' => '2073',
'acctsessionid' => '4a762dbf00000002',
'acctuniqueid' => 'c199b5a94ebf5184',
'username' => '[email protected]',
'realm' => '',
'role_name' => 'Guest',
'nasipaddress' => '192.168.2.20',
Dell Networking W-ClearPass Guest 6.0 | Deployment Guide
GetCallingStationTraffic()
|
271