Forum Discussion
Jul 24, 2021
Hi ZANOOB,
[RADIUS::avp 31 string] may be returning empty string. If empty, iRule will throw an error.
Can you investigate the ltm logs and try this iRule?
when CLIENT_DATA {
if { [UDP::local_port] == 1813 } {
set CALLID [RADIUS::avp 31 string]
set IP [RADIUS::avp 8 ip4]
if { $IP != "" } {
table set $IP [LB::server addr] 900
log local0. "Radius maps $IP to [LB::server addr] for $CALLID"
}
}
}
when CLIENT_ACCEPTED {
if { ([UDP::local_port] != 1812) && ([UDP::local_port] != 1813) } {
log local0. "packet on port [UDP::local_port] dropped"
drop
}
elseif {
set CALLID [RADIUS::avp 31 string]
log local0. "persisted $CALLID"
if { $CALLID ne "" } {
persist uie $CALLID
}
}
}
when CLIENT_DATA {
if { [UDP::local_port] == 1813 } {
set CALLID [RADIUS::avp 31 string]
set IP [RADIUS::avp 8 ip4]
if { $IP ne "" && $CALLID ne "" } {
table set $IP [LB::server addr] 900
log local0. "Radius maps $IP to [LB::server addr] for $CALLID"
}
}
}
when LB_SELECTED {
log local0. "Selected [LB::server addr] [LB::server port]"
}
when SERVER_DATA {
if { $CALLID ne "" } {
persist add uie $CALLID
log local0. "persist added for $CALLID to [LB::server addr]"
}
}