Session statistics¶
The PCEP statistics provides information about PCE <-> PCC session and its stateful listener (topology-provider).
Session state¶
URL: /rests/data/network-topology:network-topology/topology=pcep-topology/node=pcc%3A%2F%2F43.43.43.43/pcep-session-state?content=nonconfig
Method: GET
Response Body:
1<pcep-session-state xmlns="urn:opendaylight:params:xml:ns:yang:topology:pcep:stats">
2 <messages>
3 <last-received-rpt-msg-timestamp xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">1512640592</last-received-rpt-msg-timestamp>
4 <sent-upd-msg-count xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">0</sent-upd-msg-count>
5 <received-rpt-msg-count xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">2</received-rpt-msg-count>
6 <sent-init-msg-count xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">0</sent-init-msg-count>
7 <sent-msg-count>0</sent-msg-count>
8 <last-sent-msg-timestamp>0</last-sent-msg-timestamp>
9 <unknown-msg-received>0</unknown-msg-received>
10 <received-msg-count>2</received-msg-count>
11 <error-messages>
12 <last-sent-error></last-sent-error>
13 <received-error-msg-count>0</received-error-msg-count>
14 <sent-error-msg-count>0</sent-error-msg-count>
15 <last-received-error></last-received-error>
16 </error-messages>
17 <reply-time>
18 <average-time>0</average-time>
19 <min-time>0</min-time>
20 <max-time>0</max-time>
21 </reply-time>
22 </messages>
23 <peer-pref>
24 <keepalive>30</keepalive>
25 <deadtimer>120</deadtimer>
26 <ip-address>127.0.0.1</ip-address>
27 <session-id>0</session-id>
28 </peer-pref>
29 <local-pref>
30 <keepalive>30</keepalive>
31 <deadtimer>120</deadtimer>
32 <ip-address>127.0.0.1</ip-address>
33 <session-id>0</session-id>
34 </local-pref>
35 <peer-capabilities>
36 <stateful xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">true</stateful>
37 <instantiation xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">true</instantiation>
38 <active xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">true</active>
39 </peer-capabilities>
40 <session-duration>0:00:00:18</session-duration>
41 <delegated-lsps-count>1</delegated-lsps-count>
42 <synchronized>true</synchronized>
43</pcep-session-state>
@line 3: last-received-rpt-msg-timestamp - The timestamp of last received PCRpt message.
@line 4: sent-upd-msg-count - The number of sent PCUpd messages.
@line 5: received-rpt-msg-count - The number of received PcRpt messages.
@line 6: sent-init-msg-count - The number of sent PCInitiate messages.
@line 7: sent-msg-count - Total number of sent PCEP messages.
@line 8: last-sent-msg-timestamp - The timestamp of last sent message.
@line 9: unknown-msg-received - The number of received unknown messages.
@line 10: received-msg-count - Total number of received PCEP messages.
@line 12: last-sent-error - Type/value tuple of last sent error.
@line 13: received-error-msg-count - Total number of received PCErr messages.
@line 14: sent-error-msg-count - Total number of sent PCErr messages.
@line 15: last-received-error - Type/value tuple of last sent error.
@line 24: keepalive - Advertised keep-alive value.
@line 25: deadtimer - Advertised deadtimer value.
@line 26: ip-address - Peer’s IP address.
@line 27: session-id - Peer’s session identifier.
@line 30: keepalive - Advertised keep-alive value.
@line 31: deadtimer - Advertised deadtimer value.
@line 32: ip-address - Peer’s IP address.
@line 33: session-id - Peer’s session identifier.
@line 35: stateful - Represents peer’s stateful/stateless capability.
@line 36: instantiation - Represents peer’s instantiation capability.
@line 37: active - Represents peer’s LSP update capability.
@line 40: session-duration - Elapsed time (in d:H:m:s) from session-up until last statistic update.
@line 41: delegated-lsps-count - The number of delegated LSPs (tunnels) from PCC.
@line 42: synchronized - Represents synchronization status.
Response Body:
1{
2 "pcep-session-state": {
3 "messages": {
4 "last-received-rpt-msg-timestamp": 1512640592,
5 "sent-upd-msg-count": 0,
6 "received-rpt-msg-count": 2,
7 "sent-init-msg-count": 0,
8 "sent-msg-count": 0,
9 "last-sent-msg-timestamp": 0,
10 "unknown-msg-received": 0,
11 "received-msg-count": 2,
12 "error-messages": {
13 "last-sent-error": null,
14 "received-error-msg-count": 0,
15 "sent-error-msg-count": 0,
16 "last-received-error": null
17 },
18 "reply-time": {
19 "average-time": 0,
20 "min-time": 0,
21 "max-time": 0
22 }
23 },
24 "peer-pref": {
25 "keepalive": 30,
26 "deadtimer": 120,
27 "ip-address": "127.0.0.1",
28 "session-id": 0
29 },
30 "local-pref": {
31 "keepalive": 30,
32 "deadtimer": 120,
33 "ip-address": "127.0.0.1",
34 "session-id": 0
35 },
36 "peer-capabilities": {
37 "stateful": true,
38 "instantiation": true,
39 "active": true
40 },
41 "session-duration": "0:00:00:18",
42 "delegated-lsps-count": 1,
43 "synchronized": true
44 }
45}
@line 4: last-received-rpt-msg-timestamp - The timestamp of last received PCRpt message.
@line 5: sent-upd-msg-count - The number of sent PCUpd messages.
@line 6: received-rpt-msg-count - The number of received PcRpt messages.
@line 7: sent-init-msg-count - The number of sent PCInitiate messages.
@line 8: sent-msg-count - Total number of sent PCEP messages.
@line 9: last-sent-msg-timestamp - The timestamp of last sent message.
@line 10: unknown-msg-received - The number of received unknown messages.
@line 11: received-msg-count - Total number of received PCEP messages.
@line 13: last-sent-error - Type/value tuple of last sent error.
@line 14: received-error-msg-count - Total number of received PCErr messages.
@line 15: sent-error-msg-count - Total number of sent PCErr messages.
@line 16: last-received-error - Type/value tuple of last sent error.
@line 25: keepalive - Advertised keep-alive value.
@line 26: deadtimer - Advertised deadtimer value.
@line 27: ip-address - Peer’s IP address.
@line 28: session-id - Peer’s session identifier.
@line 31: keepalive - Advertised keep-alive value.
@line 32: deadtimer - Advertised deadtimer value.
@line 33: ip-address - Peer’s IP address.
@line 34: session-id - Peer’s session identifier.
@line 37: stateful - Represents peer’s stateful/stateless capability.
@line 38: instantiation - Represents peer’s instantiation capability.
@line 39: active - Represents peer’s LSP update capability.
@line 41: session-duration - Elapsed time (in d:H:m:s) from session-up until last statistic update.
@line 42: delegated-lsps-count - The number of delegated LSPs (tunnels) from PCC.
@line 43: synchronized - Represents synchronization status.
Following RPC can be used to fetch PCEP session statistics. If PCEP topology and/or PCC node is not specified in input, statistics for all PCEP sessions under the context are returned.
Get stats¶
URL: /rests/operations/pcep-topology-stats-rpc:get-stats
Method: POST
Content-Type: application/xml
Request Body:
<input xmlns="urn:opendaylight:params:xml:ns:yang:pcep:topology:stats:rpc">
<topology>
<topology-id>pcep-topology</topology-id>
<node>
<node-id>pcc://43.43.43.43</node-id>
</node>
</topology>
</input>
Response Body:
<output xmlns="urn:opendaylight:params:xml:ns:yang:pcep:topology:stats:rpc">
<topology>
<topology-id>pcep-topology</topology-id>
<node>
<node-id>pcc://43.43.43.43</node-id>
<pcep-session-state>
<synchronized>true</synchronized>
<peer-capabilities>
<stateful xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">true</stateful>
<instantiation xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">true</instantiation>
<active xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">true</active>
</peer-capabilities>
<local-pref>
<keepalive>30</keepalive>
<deadtimer>120</deadtimer>
<session-id>1</session-id>
<ip-address>127.0.0.1</ip-address>
</local-pref>
<session-duration>4:01:59:46</session-duration>
<messages>
<unknown-msg-received>0</unknown-msg-received>
<received-msg-count>11752</received-msg-count>
<error-messages>
<last-sent-error>
<error-type>0</error-type>
<error-value>0</error-value>
</last-sent-error>
<received-error-msg-count>0</received-error-msg-count>
<last-received-error>
<error-type>0</error-type>
<error-value>0</error-value>
</last-received-error>
<sent-error-msg-count>0</sent-error-msg-count>
</error-messages>
<sent-msg-count>11759</sent-msg-count>
<last-sent-msg-timestamp>1553547804</last-sent-msg-timestamp>
<reply-time>
<average-time>0</average-time>
<min-time>0</min-time>
<max-time>0</max-time>
</reply-time>
<received-rpt-msg-count xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">1</received-rpt-msg-count>
<sent-init-msg-count xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">0</sent-init-msg-count>
<last-received-rpt-msg-timestamp xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">1553195032</last-received-rpt-msg-timestamp>
<sent-upd-msg-count xmlns="urn:opendaylight:params:xml:ns:yang:pcep:stateful:stats">0</sent-upd-msg-count>
</messages>
<peer-pref>
<keepalive>30</keepalive>
<deadtimer>120</deadtimer>
<session-id>8</session-id>
<ip-address>127.0.0.1</ip-address>
</peer-pref>
<delegated-lsps-count>0</delegated-lsps-count>
</pcep-session-state>
</node>
</topology>
</output>
Content-Type: application/json
Request Body:
{
"input": {
"topology": [
{
"topology-id": "pcep-topology",
"node": [
{
"node-id": "pcc://43.43.43.43"
}
]
}
]
}
}
Response Body:
{
"output": {
"topology": {
"topology-id": "pcep-topology",
"node": {
"node-id": "pcc://43.43.43.43",
"pcep-session-state": {
"synchronized": true,
"peer-capabilities": {
"stateful": true,
"instantiation": true,
"active": true
},
"local-pref": {
"keepalive": 30,
"deadtimer": 120,
"session-id": 1,
"ip-address": "127.0.0.1"
},
"session-duration": "4:01:59:46",
"messages": {
"unknown-msg-received": 0,
"received-msg-count": 11752,
"error-messages": {
"last-sent-error": {
"error-type": 0,
"error-value": 0
},
"received-error-msg-count": 0,
"last-received-error": {
"error-type": 0,
"error-value": 0
},
"sent-error-msg-count": 0
},
"sent-msg-count": 11759,
"last-sent-msg-timestamp": 1553547804,
"reply-time": {
"average-time": 0,
"min-time": 0,
"max-time": 0
},
"received-rpt-msg-count": 1,
"sent-init-msg-count": 0,
"last-received-rpt-msg-timestamp": 1553195032,
"sent-upd-msg-count": 0
},
"peer-pref": {
"keepalive": 30,
"deadtimer": 120,
"session-id": 8,
"ip-address": "127.0.0.1"
},
"delegated-lsps-count": 0
}
}
}
}
Configure stats update interval¶
PCEP stats data are periodically synced with the current state of PCEP topology, for example default topology-pcep.
Interval of such update can be configured using the following edit (plain PATCH) call:
URL: rests/data/network-topology:network-topology/topology=pcep-topology/topology-types/network-topology-pcep:topology-pcep
Method: PATCH
Content-Type: application/xml
Request Body:
<topology-pcep xmlns="urn:opendaylight:params:xml:ns:yang:topology:pcep">
<timer xmlns="urn:opendaylight:params:xml:ns:yang:odl:pcep:stats:provider:config">15</timer>
</topology-pcep>
Content-Type: application/json
Request Body:
{
"network-topology-pcep:topology-pcep": {
"odl-pcep-stats-provider:timer": 15
}
}
Previous example would result in an update interval of 15 seconds in topology-pcep. Default interval is 5 seconds,
min interval is 1 and max 65,535 seconds.
To verify or determine current update interval, use GET request with the same URL. Confirmation of configuration update also can be seen in logs.
This change can be done before or while pcc is connected and will be effective immediately.
The update interval is described in odl-pcep-stats-provider.yang.
Note
User has to take into account that setting the timer to any value is guarantee that stats are updated exactly after timer time pass by.
Duration of update can take some time, it depends on system performance and datastore ability to process write operations.
if the duration of update take less than
timer- task is rescheduled again aftertimervalue decreased by elapsed time, this ensures that all consequent updates are run in the same intervalsif the duration of update take longer than
timervalue - in this case new update is scheduled after originaltimervalue