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 org.opendaylight.protocol.pcep.PCEPSessionProposalFactory;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
16 public class BasePCEPSessionProposalFactory implements PCEPSessionProposalFactory {
18 private final int keepAlive, deadTimer;
20 public BasePCEPSessionProposalFactory(final int deadTimer, final int keepAlive) {
21 this.deadTimer = deadTimer;
22 this.keepAlive = keepAlive;
25 protected void addTlvs(final InetSocketAddress address, final TlvsBuilder builder) {
30 public final Open getSessionProposal(final InetSocketAddress address, final int sessionId) {
31 final OpenBuilder oBuilder = new OpenBuilder();
32 oBuilder.setSessionId((short) sessionId);
33 oBuilder.setKeepalive((short) BasePCEPSessionProposalFactory.this.keepAlive);
34 if(BasePCEPSessionProposalFactory.this.keepAlive == 0) {
35 oBuilder.setDeadTimer((short) 0);
37 oBuilder.setDeadTimer((short) BasePCEPSessionProposalFactory.this.deadTimer);
40 final TlvsBuilder builder = new TlvsBuilder();
41 addTlvs(address, builder);
42 return oBuilder.setTlvs(builder.build()).build();
45 public final int getKeepAlive() {
46 return this.keepAlive;
49 public final int getDeadTimer() {
50 return this.deadTimer;