Forum Discussion
LillyM_9417
Altostratus
Dec 14, 2011switch & swith -globe question
Hello,
I could not manage to work this irule. Please help me to make it run.
Thanks
Lilly
=============================
**************
**************
**************
when CLIENT_DATA {
set pay1 [TCP::payload 8]
binary scan $pay1 IA4 len1 trx1
switch [IP::addr [IP::client_addr]]{
"x.x.x.x/24"{
switch -glob [class match $trx1 ] {
"A"{
do smthng}
}
"B" {
do something
}
"C" {
do something
}
default {
do something
}
}
}
"y.y.y.y/24"{
switch -glob [class match $trx1 ] {
"D"{
do something
}
"E" {
do something
}
"F" {
do something
}
default {
do something
}
}
}
}
}
=============================
- Michael_Yates
Nimbostratus
Hi LillyM,when CLIENT_DATA { set pay1 [TCP::payload 8] binary scan $pay1 IA4 len1 trx1 if { [IP::addr [IP::client_addr] equals "x.x.x.x/24" ] } { switch -glob [ $trx1 ] { "A" { do something } "B" { do something } "C" { do something } default { do something else } } } elseif { [IP::addr [IP::client_addr] equals "y.y.y.y/24" ] } { switch -glob [ $trx1 ] { "D" { do something } "E" { do something } "F" { do something } default { do something else } } } }
- LillyM_9417
Altostratus
Hi Micheal, - LillyM_9417
Altostratus
Hi again Micheal, - Michael_Yates
Nimbostratus
You should investigate your binary scan command and possibly log the value to your LTM Log to see what you are getting. - LillyM_9417
Altostratus
4 character ascii command and no problem in it. It seems to me that it is related with switch -globe command and the error also says like this. - Michael_Yates
Nimbostratus
Can you post the error that it is logging? - LillyM_9417
Altostratus
I cannot even load and save this IRULE, I got the following error: - hoolio
Cirrostratus
You should just need to remove the square braces from the switch string:when CLIENT_DATA { set pay1 [TCP::payload 8] binary scan $pay1 IA4 len1 trx1 if { [IP::addr [IP::client_addr] equals "x.x.x.x/24" ] } { switch -glob $trx1 { "A" { do something } "B" { do something } "C" { do something } default { do something else } } } elseif { [IP::addr [IP::client_addr] equals "y.y.y.y/24" ] } { switch -glob $trx1 { "D" { do something } "E" { do something } "F" { do something } default { do something else } } } }
- Michael_Yates
Nimbostratus
I would have thought that the square brackets could have caused that problem.
Learn something new all the time.
Can you let us know if Hoolio's suggestion works?
- LillyM_9417
Altostratus
Hello All,
Recent Discussions
Related Content
Â
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects