blob: e9eb125946cd3e3c368f9dc81a8d67be3daaaf27 [file] [log] [blame]
Phaneendra Manda1c0061d2015-08-06 12:29:38 +05301/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.pcepio.protocol;
18
19/**
20 * Abstraction of an Message factory providing Builder functions to PCEP Messages and Objects.
21 *
22 */
23public interface PcepFactory {
24
25 /**
26 * To get Builder Object for Open Message.
27 *
28 * @return Builder Object for Open Message
29 */
30 PcepOpenMsg.Builder buildOpenMsg();
31
32 /**
33 * To get Builder Object for Open Object.
34 *
35 * @return Builder Object for Open Object
36 */
37 PcepOpenObject.Builder buildOpenObject();
38
39 /**
40 * To get Builder Object for Keepalive Message.
41 *
42 * @return Builder Object for Keepalive Message
43 */
44 PcepKeepaliveMsg.Builder buildKeepaliveMsg();
45
46 /**
47 * To get Builder Object for Close Message.
48 *
49 * @return Builder Object for Close Message
50 */
51 PcepCloseMsg.Builder buildCloseMsg();
52
53 /**
54 * To get Builder Object for Report Message.
55 *
56 * @return Builder Object for Report Message
57 */
58 PcepReportMsg.Builder buildReportMsg();
59
60 /**
61 * To get Builder Object for Update Message.
62 *
63 * @return Builder Object for Update Message
64 */
65 PcepUpdateMsg.Builder buildUpdateMsg();
66
67 /**
68 * To get Builder Object for Initiate Message.
69 *
70 * @return Builder Object for Initiate Message
71 */
72 PcepInitiateMsg.Builder buildPcepInitiateMsg();
73
74 /**
75 * To get Builder Object for LSP Object.
76 *
77 * @return Builder Object for LSP Object
78 */
79 PcepLspObject.Builder buildLspObject();
80
81 /**
82 * To get Builder Object for SRP Object.
83 *
84 * @return Builder Object for SRP Object
85 */
86 PcepSrpObject.Builder buildSrpObject();
87
88 /**
89 * To get Builder Object for EndPoints Object.
90 *
91 * @return Builder Object for EndPoints Object
92 */
93 PcepEndPointsObject.Builder buildEndPointsObject();
94
95 /**
96 * To get Builder Object for ERO Object.
97 *
98 * @return Builder Object for ERO Object
99 */
100 PcepEroObject.Builder buildEroObject();
101
102 /**
103 * To get Builder Object for RRO Object.
104 *
105 * @return Builder Object for RRO Object
106 */
107 PcepRroObject.Builder buildRroObject();
108
109 /**
110 * To get Builder Object for LSPA Object.
111 *
112 * @return Builder Object for LSPA Object
113 */
114 PcepLspaObject.Builder buildLspaObject();
115
116 /**
117 * To get Builder Object for IRO Object.
118 *
119 * @return Builder Object for IRO Object
120 */
121 PcepIroObject.Builder buildIroObject();
122
123 /**
124 * To get Builder Object for METRIC Object.
125 *
126 * @return Builder Object for METRIC Object
127 */
128 PcepMetricObject.Builder buildMetricObject();
129
130 /**
131 * To get Builder Object for Bandwidth Object.
132 *
133 * @return Builder Object for Bandwidth Object
134 */
135 PcepBandwidthObject.Builder buildBandwidthObject();
136
137 /**
138 * Returns PCEP Message Reader.
139 *
140 * @return PCEP Message Reader
141 */
142 PcepMessageReader<PcepMessage> getReader();
143
144 /**
145 * Returns PCEP version.
146 *
147 * @return PCEP version
148 */
149 PcepVersion getVersion();
150
151 /**
152 * Returns PcepStateReport.
153 *
154 * @return PcepStateReport
155 */
156 PcepStateReport.Builder buildPcepStateReport();
157
158 /**
159 * Returns PcepUpdateRequest.
160 *
161 * @return PcepUpdateRequest
162 */
163 PcepUpdateRequest.Builder buildPcepUpdateRequest();
164
165 /**
166 * Returns PcInitiatedLspRequest.
167 *
168 * @return PcInitiatedLspRequest
169 */
170 PcInitiatedLspRequest.Builder buildPcInitiatedLspRequest();
171
172 /**
173 * Returns PcepMsgPath.
174 *
175 * @return PcepMsgPath
176 */
177 PcepMsgPath.Builder buildPcepMsgPath();
178
179 /**
180 * Return PcepAttribute list.
181 *
182 * @return PcepAttribute
183 */
184 PcepAttribute.Builder buildPcepAttribute();
185
186 /**
187 * To get Builder Object for LabelUpdate message.
188 *
189 * @return Builder Object for LabelUpdate message
190 */
191 PcepLabelUpdateMsg.Builder buildPcepLabelUpdateMsg();
192
193 /**
194 * To get Builder Object for PcepLabelUpdate Object.
195 *
196 * @return Builder Object for PcepLabelUpdate Object
197 */
198 PcepLabelUpdate.Builder buildPcepLabelUpdateObject();
199
200 /**
201 * To get Builder Object for PcepLabel Object.
202 *
203 * @return Builder Object for PcepLabel Object
204 */
205 PcepLabelObject.Builder buildLabelObject();
206
207 /**
208 * To get Builder Object for Error Message.
209 *
210 * @return Builder Object for Error Message
211 */
212 PcepErrorMsg.Builder buildPcepErrorMsg();
213
214 /**
215 * To get Builder Object for Error Object.
216 *
217 * @return Builder Object for Error Object
218 */
219 PcepErrorObject.Builder buildPcepErrorObject();
220
221 /**
222 * To get Builder Object for FecIpv4Adjacency.
223 *
224 * @return Builder Object for FecIpv4Adjacency
225 */
226 PcepFecObjectIPv4Adjacency.Builder buildFecIpv4Adjacency();
227
228 /**
229 * To get Builder Object for ErrorInfo.
230 *
231 * @return Builder Object for ErrorInfo
232 */
233 PcepErrorInfo.Builder buildPcepErrorInfo();
234
235 /**
236 * To get Builder Object for PcepError.
237 *
238 * @return Builder Object for PcepError
239 */
240 PcepError.Builder buildPcepError();
241}