docs: def AddAttribute(self, key, value):
          """Add an attribute to the packet.
  
          :param key:   attribute name or identification
          :type key:    string, attribute code or (vendor code, attribute code)
                        tuple
          :param value: value
          :type value:  depends on type of attribute
          """
          if isinstance(value, list):
              values = value
          else:
              values = [value]
          (key, values) = self._EncodeKeyValues(key, values)
          self.setdefault(key, []).extend(values)