It does look like this is possible (with a little work) (chkpnt.mib):
https://support.checkpoint.com/results/sk/sk90470
fwIspStatus OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "Status"
::= { fwIspEntry 3 }
When querying for that OID:
snmpwalk -v 2c -c SNMPReadString -On HostName .1.3.6.1.4.1.2620.1.1.25.7.1.3
.1.3.6.1.4.1.2620.1.1.25.7.1.3.1.0 = STRING: "OK"
.1.3.6.1.4.1.2620.1.1.25.7.1.3.2.0 = STRING: "OK"
A String is returned with the current state of the link configured in ISP Redundancy.
There does seem to be an issue, when performing an snmpget on the actual OID (before doing a snmpwalk) the following may be returned:
"No Such Object available on this agent at this OID"
This is accounted for as part of the perl script that performs the query for me (And then returns an integer that can be graphed, instead of the string result)
#!/usr/bin/perl
# .1.3.6.1.4.1.2620.1.1.25.7.1.3.1.0 ## Link 1
# .1.3.6.1.4.1.2620.1.1.25.7.1.3.2.0 ## Link 2
my $host = $ARGV[0];
chomp $host;
$output = `/usr/bin/snmpget -v 2c -c SNMPString $host:161 .1.3.6.1.4.1.2620.1.1.25.7.1.3.1.0`;
if ($output =~ "No Such Object available on this agent at this OID") {
$snmpwalk = `/usr/bin/snmpwalk -v 2c -c SNMPString $host:161 .1.3.6.1.4.1.2620.1.1.25.7`;
}
$output = `/usr/bin/snmpget -v 2c -c SNMPString $host:161 .1.3.6.1.4.1.2620.1.1.25.7.1.3.1.0`;
if ($output =~ "OK") {
print "1";
}
else {
print "0";
}