code: def sessionless_data(self, data, sockaddr):
          
          if len(data) < 22:
              return
          data = bytearray(data)
          if not (data[0] == 6 and data[2:4] == b'\xff\x07'):  # not ipmi
              return
          if data[4] == 6:  # ipmi 2 payload...
              payloadtype = data[5]
              if payloadtype not in (0, 16):
                  return
              if payloadtype == 16:  # new session to handle conversation
                  ServerSession(self.authdata, self.kg, sockaddr,
                                self.serversocket, data[16:], self.uuid,
                                bmc=self)
                  return
              # ditch two byte, because ipmi2 header is two
              # bytes longer than ipmi1 (payload type added, payload length 2).
              data = data[2:]
          myaddr, netfnlun = struct.unpack('2B', bytes(data[14:16]))
          netfn = (netfnlun & 0b11111100) >> 2
          mylun = netfnlun & 0b11
          if netfn == 6:  # application request
              if data[19] == 0x38:  # cmd = get channel auth capabilities
                  verchannel, level = struct.unpack('2B', bytes(data[20:22]))
                  version = verchannel & 0b10000000
                  if version != 0b10000000:
                      return
                  channel = verchannel & 0b1111
                  if channel != 0xe:
                      return
                  (clientaddr, clientlun) = struct.unpack(
                      'BB', bytes(data[17:19]))
                  clientseq = clientlun >> 2
                  clientlun &= 0b11  # Lun is only the least significant bits
                  level &= 0b1111
                  self.send_auth_cap(myaddr, mylun, clientaddr, clientlun,
                                     clientseq, sockaddr)
docs: Examines unsolocited packet and decides appropriate action.
  
          For a listening IpmiServer, a packet without an active session
          comes here for examination.  If it is something that is utterly
          sessionless (e.g. get channel authentication), send the appropriate
          response.  If it is a get session challenge or open rmcp+ request,
          spawn a session to handle the context.