The service order defines the order in which services are applied for this service set. The service-order statement must include all services defined in the service set. It is mandatory to specify the forward-flow service order and the reverse-flow service flow. If the reverse-flow service order is not specified, the reverse-flow order is the reverse of the forward-flow service-order.
To configure the service order, include the service-order statement at the [edit services service-set service-set-name extension-service] hierarchy level.
![]() |
Note: If the extension-service statement is specified, the service-order statement is mandatory. Service order should not be configured for native JUNOS internal services. For the internal services, there is a default service order that is assumed. |
To change the service order, delete the service order elements and then add them again in the new order.
In following configuration example, the acme-svc1 service is defined by three rules (content unspecified) and the acme-svc2 service is defined by a rule set made up of an unspecified number of rules. In this case, these services are defined at the [edit acme services] hierarchy level.
- [edit]
- acme {
-
- services {
-
- acme-svc1 { #Provider-defined service
-
- svc1-rule1 { # First rule’s name
- . . . # First rule defined
- }
-
- svc1-rule2 { # Second rule’s name
- . . . # Second rule defined
- }
-
- svc1-rule3 { # Third rule’s name
- . . . # Third rule defined
- }
- }
-
- acme-svc2 { # Provider-defined service
-
- rule-set svc2-rule-set {# Rule-set name
- [ rules rule-names ]; # Rules definitions start here
- }
- }
- }
- }
At the [edit services] hierarchy level (no intervening “acme” level here), the service-set sset1 is defined by referencing the three rule names for acme-svc1 and the one rule set name for acme-svc2 using the service-set service-set-name extension-service statement at the [edit services service-set service-set-name] hierarchy level. The service order is also configured at the [edit services service-set service-set-name] hierarchy level.
The following is an example of configuring service sets, extension service rules, and the service order:
- [edit]
- services {
-
- service-set sset1 {
-
- extension-service acme-svc1 {
- svc1-rule1;
- svc1-rule2;
- svc1-rule3;
- }
-
- extension-service acme-svc2 {
- rule-set svc2-rule-set;
- }
- /* Now define the order */
-
- service-order {
- forward-flow [acme-svc1 acme-svc2];
- reverse-flow [acme-svc1 acme-svc2];
- }
- }
- }
The following is another example of configuring the service order:
- [edit]
- services {
-
- service-set sset1 {
-
- next-hop-service {
- inside-service-interface ms-5/0/0.1;
- outside-service-interface ms-5/0/0.2;
- }
- extension-service jnx-msptest-plugin2;
- extension-service jnx-msptest-plugin1;
-
- service-order {
- forward-flow [ jnx-msptest-plugin1 jnx-msptest-plugin2
];
- reverse-flow [ jnx-msptest-plugin1 jnx-msptest-plugin2
];
- }
- }
- }
- }