ab6c2a89de5584500e990998acf548f302fa4692
[bgpcep.git] / pcep / api / src / main / java / org / opendaylight / protocol / pcep / PCEPSessionProposalFactory.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.protocol.pcep;
9
10 import java.net.InetSocketAddress;
11 import java.util.List;
12 import javax.annotation.Nonnull;
13 import javax.annotation.Nullable;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
15
16 /**
17  * Factory for generating PCEP Session proposals. Used by a server.
18  */
19 public interface PCEPSessionProposalFactory {
20     /**
21      * @param address      serves as constraint, so that factory is able to return different proposals for different
22      *                     addresses
23      * @param sessionId    is used for creation of PCEPOpenObject
24      * @param peerProposal for including information from peer to our Open message
25      * @return specific session proposal
26      */
27     @Nonnull
28     Open getSessionProposal(@Nonnull InetSocketAddress address, int sessionId, @Nullable PCEPPeerProposal peerProposal);
29
30     /**
31      * Returns list containing PCEP Capabilities
32      *
33      * @return PCEPCapabilities
34      */
35     @Nonnull
36     List<PCEPCapability> getCapabilities();
37 }