diff --git a/checkpoint_asg_vsls.mkp b/checkpoint_asg_vsls.mkp
index 4c5c5eb34c8732913cb961b0d3f34a6fc45ce0e0..9231e6d99b42e1bed2f2a4e42e93ac32adfcff6d 100644
Binary files a/checkpoint_asg_vsls.mkp and b/checkpoint_asg_vsls.mkp differ
diff --git a/checks/checkpoint_asg_vsls b/checks/checkpoint_asg_vsls
new file mode 100644
index 0000000000000000000000000000000000000000..b0f8a70ed5395f577f21eb9a4166a4604c1bd299
--- /dev/null
+++ b/checks/checkpoint_asg_vsls
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2020-11-07
+#
+# Monitor Check Point Maestro SMO Vsls Chassis status
+#
+# sample snmpwalk 
+# .1.3.6.1.4.1.2620.1.48.30.20.1.0 = Gauge32: 50
+# .1.3.6.1.4.1.2620.1.48.30.20.2.0 = STRING: "1 2 "
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.1.1.0 = Gauge32: 0
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.2.1.0 = STRING: "k01001s11-017500009"
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.3.1.0 = Gauge32: 1
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.4.1.0 = Gauge32: 1
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.5.1.0 = STRING: "OK"
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.6.1.0 = STRING: "Primary chassis health is good."
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.7.1.0 = Gauge32: 0
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.8.1.0 = Gauge32: 0
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.9.1.0 = Gauge32: 2
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.10.1.0 = Gauge32: 2
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.21.1.0 = Gauge32: 0
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.22.1.0 = Gauge32: 0
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.23.1.0 = Gauge32: 1
+# .1.3.6.1.4.1.2620.1.48.30.20.10.1.24.1.0 = Gauge32: 1
+#
+# sample info
+# [[[u'50', u'1 2']], [[u'0', u'k01001s11-017500009', u'1', u'1', u'OK', u'Primary chassis health is good.', u'2', u'2', u'1', u'1', u'', u'']]]
+#
+
+def inventory_checkpoint_asg_vsls(info):
+    chassis_info, chassis_state = info
+    try:
+        asgVslsSgmRatio, asgVslsSystemPrimaryChassis = chassis_info[0]
+        yield None, {'inv_state': chassis_state[0]}
+    except KeyError:
+        pass
+
+
+def check_checkpoint_asg_vsls(_no_item, params, info):
+    chassis_info, chassis_state = info
+
+    asgVslsSgmRatio, asgVslsSystemPrimaryChassis = chassis_info[0]
+
+    asgVslsVsid, asgVslsVsName, asgVslsVsPrimaryChassis, asgVslsVsActiveChassis, asgVslsVsHealth, asgVslsVsReason, \
+    asgVslsVsChassis1FwksUp, asgVslsVsChassis1FwksTotal, \
+    asgVslsVsChassis2FwksUp, asgVslsVsChassis2FwksTotal, \
+    asgVslsVsChassis3FwksUp, asgVslsVsChassis3FwksTotal = chassis_state[0]
+
+    asgVslsSystemPrimaryChassis = asgVslsSystemPrimaryChassis.strip().split(' ')
+
+    inv_asgVslsVsActiveChassis = asgVslsVsActiveChassis
+
+    if params:
+        inv_state = params.get ('inv_state')
+        inv_asgVslsVsActiveChassis = inv_state[3]
+
+
+    infotext = ''
+    longoutput = ''
+    state = 0
+
+    # longoutput += '\n\nTo verify this output use the "asg monitor" command on the Check Point SMO cli,\n'
+    longoutput += '\nSystem name: %s' % asgVslsVsName
+    longoutput += '\nHealth status: %s' % asgVslsVsHealth
+    longoutput += '\nHealth reason: %s' % asgVslsVsReason
+
+    chassis_state = [
+        [int(asgVslsVsChassis1FwksUp), int(asgVslsVsChassis1FwksTotal)],
+        [int(asgVslsVsChassis2FwksUp), int(asgVslsVsChassis2FwksTotal)],
+        [int(asgVslsVsChassis2FwksUp), int(asgVslsVsChassis2FwksTotal)],
+    ]
+
+    if asgVslsVsHealth != "OK":
+        yield 1, "Health: %s, Reason: %s" % (asgVslsVsHealth, asgVslsVsReason)
+
+    yield_text = 'Primary/Active chassis: %s/%s' % (asgVslsVsPrimaryChassis, asgVslsVsActiveChassis)
+    if inv_asgVslsVsActiveChassis != asgVslsVsActiveChassis:
+        yield 1, yield_text
+    else:
+        yield 0, yield_text
+
+    for chassis in asgVslsSystemPrimaryChassis:
+        asgVslsVsChassisFwksUp, asgVslsVsChassisFwksTotal = chassis_state[int(chassis) - 1]
+        yield_text = 'Chassis %s: %s/%s SGMs UP' % (chassis, asgVslsVsChassisFwksUp, asgVslsVsChassisFwksTotal )
+        if asgVslsVsChassisFwksUp != asgVslsVsChassisFwksTotal:
+            yield 2, yield_text
+        else:
+            yield 0, yield_text
+
+    yield state, infotext + longoutput + '\n'
+
+
+check_info['checkpoint_asg_vsls'] = {
+    'check_function': check_checkpoint_asg_vsls,
+    'inventory_function': inventory_checkpoint_asg_vsls,
+    'service_description': "ASG VSLS",
+    'snmp_scan_function': scan_checkpoint,
+    'group': 'checkpoint_asg_vsls',
+    'snmp_info': [(
+        '.1.3.6.1.4.1.2620.1.48.30.20',  # CHECKPOINT-MIB::asgVslsInfo
+        [
+            1,  # asgVslsSgmRatio
+            2,  # asgVslsSystemPrimaryChassis
+        ]),
+        ('.1.3.6.1.4.1.2620.1.48.30.20.10.1',  # CHECKPOINT-MIB::asgVslsStateEntry
+         [
+             1,   # asgVslsVsid
+             2,   # asgVslsVsName
+             3,   # asgVslsVsPrimaryChassis
+             4,   # asgVslsVsActiveChassis
+             5,   # asgVslsVsHealth
+             6,   # asgVslsVsReason
+             9,   # asgVslsVsChassis1FwksUp
+             10,  # asgVslsVsChassis1FwksTotal
+             23,  # asgVslsVsChassis2FwksUp
+             24,  # asgVslsVsChassis2FwksTotal
+             33,  # asgVslsVsChassis3FwksUp
+             34,  # asgVslsVsChassis3FwksTotal
+         ])
+    ],
+    'includes': ['checkpoint.include'],
+}
\ No newline at end of file
diff --git a/packages/checkpoint_asg_vsls b/packages/checkpoint_asg_vsls
index bba4a0014409af9a9f4d2e60c506987b10481ca8..06a26a4fef531762c34330adae574385e8cdab35 100644
--- a/packages/checkpoint_asg_vsls
+++ b/packages/checkpoint_asg_vsls
@@ -1,7 +1,7 @@
 {'author': u'Th.L. (thl-cmk[at]outlook[dot]com)',
  'description': u'Monitor Check Point Maestro SMO VSLS Chassis status',
  'download_url': 'http://thl-cmk.hopto.org/',
- 'files': {'checks': ['checkpoint_asg_chassis']},
+ 'files': {'checks': ['checkpoint_asg_vsls']},
  'name': 'checkpoint_asg_vsls',
  'num_files': 1,
  'title': u'Check Point Maestro SMO ASG VSLS Chassis',