import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
-
import io.netty.buffer.ByteBuf;
-
+import io.netty.buffer.Unpooled;
import java.util.List;
-
+import org.opendaylight.protocol.bgp.parser.AttributeFlags;
import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
import org.opendaylight.protocol.bgp.parser.spi.AttributeParser;
import org.opendaylight.protocol.bgp.parser.spi.AttributeSerializer;
public final class CommunitiesAttributeParser implements AttributeParser, AttributeSerializer {
public static final int TYPE = 8;
+ public static final int ATTR_LENGTH = 4;
private final ReferenceCache refCache;
if (communities == null) {
return;
}
+ ByteBuf communitiesBuffer = Unpooled.buffer();
for (Community community : communities) {
- byteAggregator.writeInt(community.getAsNumber().getValue().intValue());
+ communitiesBuffer.writeShort(community.getAsNumber().getValue().shortValue());
+ communitiesBuffer.writeShort(community.getSemantics().shortValue());
}
+ byteAggregator.writeByte(AttributeFlags.TRANSITIVE | AttributeFlags.PARTIAL);
+ byteAggregator.writeByte(CommunitiesAttributeParser.TYPE);
+ byteAggregator.writeByte(communitiesBuffer.writerIndex());
+ byteAggregator.writeBytes(communitiesBuffer);
}
}