Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Performing a Functional Audit

 

A functional audit determines whether a deployed service instance is functioning. It checks the control plane to ensure connectivity among endpoints and that the UNIs are functioning correctly. It also checks the data plane to verify packet transmission between each valid pair of endpoints in the service.

The functional audit provides both a CLI verification and a troubleshooting feature that allows you to check the status of interfaces, LDP sessions, neighbor links, and endpoints of E-Line services. The Functional Audit Results window displays information about the service statistics for the link you are monitoring. When you click Troubleshoot button in the Functional Audit Results window, the Troubleshooting page displays status of the interfaces, LDP sessions, neighbor links, and endpoints.

Performing the Functional Audit

To perform a functional audit:

  1. From the View selector, select Service View. The workspaces that are applicable to routing and tunnel services are displayed.
  2. Click the Build icon in the Service View of the Connectivity Services Director banner. The functionalities that you can configure in this mode are displayed in the task pane.
  3. Click the plus sign (+) beside Connectivity to view services based on protocols.
    • Expand the IP Services tree to select an IP service.

    • Expand the E-Line Services tree to select an E-Line service.

    • Expand the E-LAN Services tree to select an E-LAN service.

  4. In the Network Services > Connectivity task pane, select Audit Results > Functional Audit. Alternatively, you can select a service order, click the Audit button at the top of the table of listed service orders from the Manage Network Services page and select Run Functional Audit.
  5. In the Schedule Functional Audit dialog box, do one of the following:
    1. Select Audit Now, then click OK.

      The Job Details dialog box appears for you to click the Job ID link to see the functional results. The Job Management page displays the functional audit details by job ID, name, percentage complete, state, job type, summary, scheduled start time, user, and recurrence.

      Note

      Alternatively, to display the Job Management page, click the System icon on the Connectivity Services Director banner, and select Manage Jobs from the Tasks pane. You can also view the CSD Deployment Jobs page in Deploy mode of Service View by selecting the View Deployment Jobs option in the task pane.

    2. Select Audit Later, enter a date and time, then click OK.

      To monitor the progress of an audit after selecting Audit Later, after the scheduled time of the audit:

      1. On the Junos Space Network Management Platform user interface, select Jobs.
      2. On the Jobs statistics page, select the Functional Audit segment of the Job Types pie chart.

        The Job Management page appears filtered by functional audit jobs.

      3. Select the functional audit job that you want.

        Summary information about the audit appears in the quick look panel.

      4. In the filter bar, select the table view icon to see additional information about the job. If the service failed the audit, information about the failure appears in the Summary field.
    Note

    Functional audit can be run for multiple services from Build mode of Service View of the Connectivity Services Director GUI. From the Manage Network Services page, select the check boxes beside multiple srvices, and click the Audit/Results button at the top of the table of configured services. When the Audit/Results button is clicked, the Schedule Functional Audit window is displayed, which enables you to perform the audit immediately or schedule it to be run at a later time. You can view detailed, ingrained information about the output of the functional audit that you performed for a service from the Functional Audit Results window. Select the Service-name > Interface-name Device-name > Remote Interface - Remote Device in the left pane of the window. The control plane and data plane statuses are displayed by running service-specific commands in the right pane of the window. Click Rerun Functional Audit at the top-right corner of the window to perform the audit again. If the Status field displays as Completed, an audit can be run again; else, if the Status field displays as Ongoing, it denotes that an audit is currently in progress, you must wait for the running instance to be completed to perform a functional evaluation again.

    Click Reload Result at the top-right corner of the window to refresh the results of the audit and display the updated information. You can refresh the results only for completed audit instances. When you select Service-name in the left pane of the window, service status information is displayed in the right pane. The Service Status window displays details such as the operational status of the service, the device name, the topology used in the service are displayed in a tabular format. The number of UNI interfaces and PE devices that are up and down is also shown. When you select Service-name > Interface-name Device-name > Remote Interface - Remote Device in the left pane of the window, endpoint status information is shown in the right pane. The Endpoint Status window displays details of the device name, the topology used in service, remote UNIs status, and device status of the selected service.

    The Service Status field corresponding to the service for which polled data is not available is displayed as NA. The Service Status field represents the overall status of a service. To calculate the overall service status, a polling mechanism is used to retrieve data from devices by Connectivity Services Director. Because the overall status of a service involves multiple devices, it is possible to calculate and update service statuses, based on an event from one of the devices because the status of all endpoints of a service needs to be determined to compute the overall service status. It is an expensive operation to send requests to all endpoints, based on an event from a single device. As a result, a polling method is used to obtain the overall status of the device. Because the polled data represents a snapshot at a point in time, a delay occurs in updating the status of a service. Also, while polling, if service information from one of the devices is not available, the service is marked as down.

  6. To view additional details about the functional audit, including results from checking the control plane and the data plane, see Viewing Functional Audit Results .

CLI Verification

The CLI verification feature of a functional audit works by running commands that perform verification and reporting relevant information.

The following table shows the commands that are used for each service type.

XML Commands

 

CLI Commands

 

Service Type/

Device Type

Control Plane

Data Plane

Control Plane

Data Plane

ELINE Martini/

M Series and MX Series

<get-l2ckt-connection-information>

<neighbor>neighborIP</neighbor>

<interface>interfaceName </interface>

</get-12-ckt-connection-information>

<request-ping-l2circuit-virtual-circuit>

<neighbor>neighborIP</neighbor>

<virtual-circuit-id>VCID</virtual-circuit-id>

</request-ping-l2circuit-virtual-circuit>

show l2circuit connections neighbor neighborIP interface interfaceName

show ppp interface mlppp group1 members

ping mpls l2circuit virtual-circuit VCID neighbor neighborIP

Where:

neighborIP = Address of remote neighbor

VC ID = Virtual Circuit ID

interfaceName = Name of interface

BX Series

Not supported.

<get-l2circuit-information> <l2circuit-name> name<l2circuit-name> <brief/> </get-l2circuit-information>

Not supported.

show l2circuit name brief

Where:

Name = name of the l2 circuit ID

VPLS/

M Series

<get-vpls-connection-information> <instance> routing_instance_name

</instance> <local-site> local-siteID </local-site> <remote-site> remote-siteID

</remote-site> </get-vpls-connection-information>

<request-ping-vpls-instance> <instance-name> routing_instance_name

</instance-name> <destination-mac> destMacValue

</destination-mac> <source-ip> sourceIp

</source-ip> <learning-vlan-id> learning-vlan-id

< /learning-vlan-id> </request-ping-vpls-instance>

show vpls connections instance routing_instance_name local-site local-siteID remote-site remote-siteID

ping vpls instance routing_instance_name destination-mac destMacValue source-ip sourceIpValue learning-vlan-id learningVlanID

Where:

routing_instance_name = Routing instance name

destMacValue = Destination MAC address

sourceIP = Source IP address

local-SiteID = Name or ID of VPLS local site

remote-SiteID = ID of VPLS remote site

learning-vlan-id = Learning VLAN identifier

L3VPN/

Junos

<get-route-information> <table> bgp.l3vpn.0</table> <rd-prefix>destinationRDprefix</rd-prefix> </get-route-information>

<ping><routing-instance> routingInstanceValue </routing-instance> <count>5 </count>

show route table bgp.l3vpn.0 rd-prefix destinationRDprefix

ping routing-instance routiingInstanceValue count

Where:

routingInstanceValue = Routing instance name

destinationRDprefix = Route Distinguisher: remote UNI IP address

destinationUniInterfaceIP = Destination UNI IP address

For the data plane, the Junos Space software places a static MAC address in the forwarding table of the remote endpoint, which it uses to verify correct packet transfer.

Note

Data plane validation of an E-LAN service works for MX Series devices running Junos Release 9.4 or later. If the service under audit contains an M Series device or an N-PE device running Junos Release 9.2 or 9.3, the functional audit does not complete successfully and generates a message stating that functional audit is not supported on that platform.

The following table shows the commands for E-LAN service type:

Service Type

Device Family

XML Commands

CLI Commands

Category

VPLS

M Series

<get-vpls-connection-information> <instance>instanceValue</instance> </get-vpls-connection-information>

show vpls connection instance instanceValue

Route

<get-mpls-lsp-information> <ingress/> </get-mpls-lsp-information>

show mpls lsp ingress

MPLS

<get-mpls-lsp-information> <egress/> </get-mpls-lsp-information>

show mpls lsp egress

MPLS

<get-mpls-static-lsp-information> <ingress/> </get-mpls-static-lsp-information>

show mpls static-lsp ingress

MPLS

<get-rsvp-session-information> </get-rsvp-session-information>

show rsvp session

Route

<get-route-information> <table>inet.3</table> </get-route-information>

show route table inet.3

Route

<get-interface-information> <terse/><interface-name>interfaceValue</interface-name> </get-interface-information>

show interface interfaceValue terse

UNI

<get-interface-information> <statistics/> <interface-name>interfaceValue</interface-name> </get-interface-information>

show interface interfaceValue statistics

UNI

<get-route-information> <table>instanceValue</table> <protocol>bgp</protocol> </get-route-information>

show route protocol bgp table instanceValue.l2vpn.0

Route

Where:

instanceValue= Name of the service

neighborIP= Address of the remote neighbor

interfaceValue= Name of the interface

  
   

The following table shows the commands for IP service type:

Service Type

Device Family

XML Commands

CLI Commands

Category

L3VPN

M Series

<get-mpls-lsp-information> <ingress/> </get-mpls-lsp-information>

show mpls lsp ingress

MPLS

<get-mpls-lsp-information> <egress/> </get-mpls-lsp-information>

show mpls lsp egress

MPLS

<get-interface-information> <terse/> <interface-name>interfaceValue</interface-name> </get-interface-information>

show interfaces instancevalue.initvalue terse

Route

<get-forwarding-table-information> <vpn>instance </vpn> </get-forwarding-table-information>

show route forwarding-table vpn instance

Route

<get-rsvp-session-information> </get-rsvp-session-information>

show rsvp session

Route

<get-interface-information> <statistics/> <interface-name>instance</interface-name> </get-interface-information>

show interfaces instance statistics

UNI

<get-mpls-static-lsp-information> <ingress/> </get-mpls-static-lsp-information>

show mpls static-lsp

MPLS

<get-ospf-neighbor-information> </get-ospf-neighbor-information>

show ospf neighbor

Route

<get-route-information> <table>bgp.l3vpn.0 </table> <rd-prefix>destinationRDprefix</rd-prefix> </get-route-information>

show route table bgp.l3vpn.0

Route

<get-lacp-interface-information>
<interface-name>
lagInterface
</interface-name>
</get-lacp-interface-information>

show lacp interfaces

UNI

<get-mc-ae-interface-information>
</get-mc-ae-interface-information>

show interfaces mc-ae

UNI

<get-vrrp-interface-information>
<interface-name>
lnterface
</interface-name>
</get-vrrp-interface-information>

Show vrrp interfaceName

UNI

<get-bridge-instance-information>
<bridge-domain-name>
domainName
</bridge-domain-name>
</get-bridge-instance-information>

Show bridge domain domainName

UNI

Where:

instanceValue= Name of the service

neighborIP= Address of the remote neighbor

interfaceValue= Name of the interface