2 * Copyright (c) 2013 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.impl;
10 import java.net.InetSocketAddress;
12 import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.Tlvs;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.Stateful.Flags;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.stateful.capability.tlv.StatefulBuilder;
20 public class PCEPSessionProposalFactoryImpl implements PCEPSessionProposalFactory {
22 private final int keepAlive, deadTimer, timeout;
24 private final boolean stateful, active, versioned, instant;
26 public PCEPSessionProposalFactoryImpl(final int deadTimer, final int keepAlive, final boolean stateful, final boolean active,
27 final boolean versioned, final boolean instant, final int timeout) {
28 this.deadTimer = deadTimer;
29 this.keepAlive = keepAlive;
30 this.stateful = stateful;
32 this.versioned = versioned;
33 this.instant = instant;
34 this.timeout = timeout;
38 public Open getSessionProposal(final InetSocketAddress address, final int sessionId) {
39 final Tlvs tlvs = null;
40 final TlvsBuilder builder = new TlvsBuilder();
41 if (PCEPSessionProposalFactoryImpl.this.stateful) {
42 builder.setStateful((new StatefulBuilder().setFlags(new Flags(PCEPSessionProposalFactoryImpl.this.versioned, PCEPSessionProposalFactoryImpl.this.instant, PCEPSessionProposalFactoryImpl.this.active)).build()));
44 final OpenBuilder oBuilder = new OpenBuilder();
45 oBuilder.setSessionId((short) sessionId);
46 if (PCEPSessionProposalFactoryImpl.this.keepAlive != 0) {
47 oBuilder.setKeepalive((short) PCEPSessionProposalFactoryImpl.this.keepAlive);
49 if (PCEPSessionProposalFactoryImpl.this.deadTimer != 0) {
50 oBuilder.setDeadTimer((short) PCEPSessionProposalFactoryImpl.this.deadTimer);
52 return oBuilder.setTlvs(tlvs).build();
55 public int getKeepAlive() {
56 return this.keepAlive;
59 public int getDeadTimer() {
60 return this.deadTimer;
63 public boolean isStateful() {
67 public boolean isActive() {
71 public boolean isVersioned() {
72 return this.versioned;
75 public boolean isInstant() {
79 public int getTimeout() {