code: def make_iv(self, pkt):
          
          if self.xpn_en:
              tmp_pn = (self.pn & 0xFFFFFFFF00000000) | (pkt[MACsec].pn & 0xFFFFFFFF)  # noqa: E501
              tmp_iv = self.ssci + struct.pack('!Q', tmp_pn)
              return bytes(bytearray([a ^ b for a, b in zip(bytearray(tmp_iv), bytearray(self.salt))]))  # noqa: E501
          else:
              return self.sci + struct.pack('!I', pkt[MACsec].pn)
docs: generate an IV for the packet