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.

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>

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>

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 after timer value decreased by elapsed time, this ensures that all consequent updates are run in the same intervals

  • if the duration of update take longer than timer value - in this case new update is scheduled after original timer value