- public static void serializeLabelStackEntries(final List<LabelStack> stack, final ByteBuf buffer) {
- int i = 1;
- for (final LabelStack labelStackEntry : stack) {
- if (i++ == stack.size()) {
- //mark last label stack entry with bottom-bit
- buffer.writeBytes(MplsLabelUtil.byteBufForMplsLabelWithBottomBit(labelStackEntry.getLabelValue()));
- } else {
- buffer.writeBytes(MplsLabelUtil.byteBufForMplsLabel(labelStackEntry.getLabelValue()));
+ public static void serializeLabelStackEntries(final List<LabelStack> stack, final boolean isUnreachNlri,
+ final ByteBuf buffer) {
+ if (!isUnreachNlri) {
+ int i = 1;
+ for (final LabelStack labelStackEntry : stack) {
+ if (i++ == stack.size()) {
+ // mark last label stack entry with bottom-bit
+ buffer.writeBytes(MplsLabelUtil.byteBufForMplsLabelWithBottomBit(labelStackEntry.getLabelValue()));
+ } else {
+ buffer.writeBytes(MplsLabelUtil.byteBufForMplsLabel(labelStackEntry.getLabelValue()));
+ }