did you forget call command?
call
https://devcentral.f5.com/wiki/irules.call.ashx
e.g.
config
[root@ve11a:Active:In Sync] config tmsh list ltm rule qux
ltm rule qux {
proc test1 { x } {
log local0. "test1: $x"
}
proc test2 { y } {
log local0. "test2: $y"
call test1 $y
}
when RULE_INIT {
if { [TMM::cmp_group] == 0 and [TMM::cmp_unit] == 0 } {
call test1 1
call test2 2
}
}
}
/var/log/ltm
[root@ve11a:Active:In Sync] config tail -f /var/log/ltm
Aug 16 22:54:09 ve11a info tmm[29362]: Rule /Common/qux : test1: 1
Aug 16 22:54:09 ve11a info tmm[29362]: Rule /Common/qux : test2: 2
Aug 16 22:54:09 ve11a info tmm[29362]: Rule /Common/qux : test1: 2