docs: void readAddInfo(ByteArrayInputStream is) throws KNXFormatException
  	{
  		final int ail = is.read();
  		if (ail == 0)
  			return;
  		if (ail > is.available())
  			throw new KNXFormatException("additional info length exceeds frame length",
  				ail);
  		int remaining = ail;
  		for (; remaining > 0; remaining -= 2) {
  			if (remaining < 1)
  				throw new KNXFormatException("lack of space for additional info");
  			final int type = is.read();
  			final int len = is.read();
  			if (len > remaining || !checkAddInfoLength(type, len))
  				throw new KNXFormatException("invalid length " + len
  					+ " for additional info type 0x" + Integer.toHexString(type), len);
  			final byte[] info = new byte[len];
  			is.read(info, 0, len);
  			putAddInfo(type, info);
  			remaining -= len;
  		}
  	}