docs: def _assure_alert_policy(self, channel, destination):
          """Make sure an alert policy exists
  
          Each policy will be a dict with the following keys:
          -'index' - The policy index number
          :returns: An iterable of currently configured alert policies
          """
          # First we do a get PEF configuration parameters to get the count
          # of entries.  We have no guarantee that the meaningful data will
          # be contiguous
          rsp = self.xraw_command(netfn=4, command=0x13, data=(8, 0, 0))
          numpol = ord(rsp['data'][1])
          desiredchandest = (channel << 4) | destination
          availpolnum = None
          for polnum in range(1, numpol + 1):
              currpol = self.xraw_command(netfn=4, command=0x13,
                                          data=(9, polnum, 0))
              polidx, chandest = struct.unpack_from('>BB', currpol['data'][2:4])
              if not polidx & 0b1000:
                  if availpolnum is None:
                      availpolnum = polnum
                  continue
              if chandest == desiredchandest:
                  return True
          # If chandest did not equal desiredchandest ever, we need to use a slot
          if availpolnum is None:
              raise Exception("No available alert policy entry")
          # 24 = 1 << 4 | 8
          # 1 == set to which this rule belongs
          # 8 == 0b1000, in other words, enable this policy, always send to
          # indicated destination
          self.xraw_command(netfn=4, command=0x12,
                            data=(9, availpolnum, 24,
                                  desiredchandest, 0))