protected List<HAProxyTLV> buildHAProxyTLV(Channel inboundChannel) throws IllegalAccessException, DecoderException {
        List<HAProxyTLV> result = new ArrayList<>();
        if (!inboundChannel.hasAttr(AttributeKeys.PROXY_PROTOCOL_ADDR)) {
            return result;
        }
        Attribute<?>[] attributes = (Attribute<?>[]) FieldUtils.readField(FIELD_ATTRIBUTE, inboundChannel);
        if (ArrayUtils.isEmpty(attributes)) {
            return result;
        }
        for (Attribute<?> attribute : attributes) {
            String attributeKey = attribute.key().name();
            if (!StringUtils.startsWith(attributeKey, HAProxyConstants.PROXY_PROTOCOL_TLV_PREFIX)) {
                continue;
            }
            String attributeValue = (String) attribute.get();
            HAProxyTLV haProxyTLV = buildHAProxyTLV(attributeKey, attributeValue);
            if (haProxyTLV != null) {
                result.add(haProxyTLV);
            }
        }
        return result;
    }
@Test
    public void buildHAProxyTLV() throws DecoderException {
        HAProxyTLV haProxyTLV = haProxyMessageForwarder.buildHAProxyTLV("proxy_protocol_tlv_0xe1", "xxxx");
        assert haProxyTLV != null;
        assert haProxyTLV.typeByteValue() == (byte) 0xe1;
    }