2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.protocol.pcep.sync.optimizations;
10 import io.netty.buffer.ByteBuf;
11 import org.opendaylight.protocol.pcep.ietf.initiated.InitiatedStatefulCapabilityTlvParser;
12 import org.opendaylight.protocol.util.BitArray;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.initiated.rev200720.Stateful1;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.initiated.rev200720.Stateful1Builder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.stateful.capability.tlv.Stateful;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev200720.stateful.capability.tlv.StatefulBuilder;
18 public class SyncOptimizationsCapabilityTlvParser extends InitiatedStatefulCapabilityTlvParser {
20 protected static final int S_FLAG_OFFSET = 30;
21 protected static final int T_FLAG_OFFSET = 28;
22 protected static final int D_FLAG_OFFSET = 27;
23 protected static final int F_FLAG_OFFSET = 26;
26 protected void parseFlags(final StatefulBuilder sb, final ByteBuf buffer) {
27 final BitArray flags = BitArray.valueOf(buffer, FLAGS_F_LENGTH);
28 sb.setLspUpdateCapability(flags.get(U_FLAG_OFFSET));
29 if (flags.get(I_FLAG_OFFSET)) {
30 sb.addAugmentation(new Stateful1Builder().setInitiation(Boolean.TRUE).build());
32 final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations
33 .rev200720.Stateful1Builder syncOptBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns
34 .yang.controller.pcep.sync.optimizations.rev200720.Stateful1Builder();
35 if (flags.get(S_FLAG_OFFSET)) {
36 syncOptBuilder.setIncludeDbVersion(Boolean.TRUE);
38 if (flags.get(T_FLAG_OFFSET)) {
39 syncOptBuilder.setTriggeredResync(Boolean.TRUE);
41 if (flags.get(D_FLAG_OFFSET)) {
42 syncOptBuilder.setDeltaLspSyncCapability(Boolean.TRUE);
44 if (flags.get(F_FLAG_OFFSET)) {
45 syncOptBuilder.setTriggeredInitialSync(Boolean.TRUE);
47 sb.addAugmentation(syncOptBuilder.build());
51 protected BitArray serializeFlags(final Stateful sct) {
52 final BitArray flags = new BitArray(FLAGS_F_LENGTH);
53 final Stateful1 sfi = sct.augmentation(Stateful1.class);
54 final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations
55 .rev200720.Stateful1 sf2 = sct.augmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
56 .controller.pcep.sync.optimizations.rev200720.Stateful1.class);
58 flags.set(F_FLAG_OFFSET, sf2.getTriggeredInitialSync());
59 flags.set(D_FLAG_OFFSET, sf2.getDeltaLspSyncCapability());
60 flags.set(T_FLAG_OFFSET, sf2.getTriggeredResync());
61 flags.set(S_FLAG_OFFSET, sf2.getIncludeDbVersion());
64 flags.set(I_FLAG_OFFSET, sfi.getInitiation());
66 flags.set(U_FLAG_OFFSET, sct.getLspUpdateCapability());