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;
11 import java.util.ArrayList;
12 import java.util.List;
14 import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory;
15 import org.opendaylight.protocol.pcep.PCEPTlv;
16 import org.opendaylight.protocol.pcep.object.PCEPOpenObject;
17 import org.opendaylight.protocol.pcep.tlv.LSPCleanupTlv;
18 import org.opendaylight.protocol.pcep.tlv.PCEStatefulCapabilityTlv;
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, final boolean versioned, final boolean instant, final int timeout) {
27 this.deadTimer = deadTimer;
28 this.keepAlive = keepAlive;
29 this.stateful = stateful;
31 this.versioned = versioned;
32 this.instant = instant;
33 this.timeout = timeout;
37 public PCEPOpenObject getSessionProposal(final InetSocketAddress address, final int sessionId) {
38 List<PCEPTlv> tlvs = null;
39 if (PCEPSessionProposalFactoryImpl.this.stateful) {
40 tlvs = new ArrayList<PCEPTlv>();
41 tlvs.add(new PCEStatefulCapabilityTlv(PCEPSessionProposalFactoryImpl.this.instant, PCEPSessionProposalFactoryImpl.this.active, PCEPSessionProposalFactoryImpl.this.versioned));
42 if (PCEPSessionProposalFactoryImpl.this.instant) {
43 tlvs.add(new LSPCleanupTlv(PCEPSessionProposalFactoryImpl.this.timeout));
46 return new PCEPOpenObject(PCEPSessionProposalFactoryImpl.this.keepAlive, PCEPSessionProposalFactoryImpl.this.deadTimer, sessionId, tlvs);
49 public int getKeepAlive() {
50 return this.keepAlive;
53 public int getDeadTimer() {
54 return this.deadTimer;
57 public boolean isStateful() {
61 public boolean isActive() {
65 public boolean isVersioned() {
66 return this.versioned;
69 public boolean isInstant() {
73 public int getTimeout() {