Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Asignación de comandos QoS de OpenConfig a la configuración de Junos

Nota:

Consulte Versión del modelo de datos de OpenConfig para conocer las versiones del modelo de datos compatibles y las versiones correspondientes de Junos OS o Junos Evolved OS.

Configuración de clases de reenvío

Consulte la Tabla 1 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/forwarding-groups/forwarding-group/name
  • /qos/forwarding-groups/forwarding-group/config/name
  • /qos/forwarding-groups/forwarding-group/config/fabric-priority
  • /qos/forwarding-groups/forwarding-group/config/output-queue
Tabla 1: Configuración de clases de reenvío

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos {
       forwarding-groups {
              forwarding-group {
                    name af1;
                    config {
                          name <>;
                          fabric-priority 0;
                          output-queue <>;
                    }
              }
              forwarding-group {
                    name nc;
                    config {
                          name <>;
                          fabric-priority 1;
                          output-queue <>;
                    }
              }
       }
}
class-of-service {
    forwarding-classes {
        class <name> queue-num <num> priority low;
        class <name> queue-num <num> priority high;
   }
}

Un valor OpenConfig fabric-priority de 0 indica prioridad baja. Cualquier valor distinto de cero indica prioridad alta. El fabric-priority valor no se admite en la plataforma PTX.

Configuración del clasificador de BA

Consulte para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/classifiers/classifier/name
  • /qos/classifiers/classifier/terms/term/id
  • /qos/classifiers/classifier/config/name
  • /qos/classifiers/classifier/config/type
  • /qos/classifiers/classifier/terms/term/id
  • /qos/classifiers/classifier/terms/term/config
  • /qos/classifiers/classifier/terms/term/config/id
  • /qos/classifiers/classifier/terms/term/conditions/ipv4/config/dscp-set
  • /qos/classifiers/classifier/terms/term/conditions/ipv6/config/dscp-set
  • /qos/classifiers/classifier/terms/term/actions/config/target-group
Nota:

Para seguir más fácilmente los ejemplos de OpenConfig a continuación, las variables se utilizan en el árbol de configuración de OpenConfig anterior.

Tabla 2: Configuración del clasificador de BA

Configuración de OpenConfig

Configuración de Junos

Open-Config-QoS:QoS:classifiers:classifier {
   name DSCP;
   terms {
      term {
         id 0;
         conditions {
            ipv6 {
               config {
                  dscp-set [ 2 3 ];                                                       }
         }
         actions {
            config {
               target-group best-effort;
            }
         }
      }
   }
}
[edit class-of-service]
classifiers {
   dscp DSCP {
term-id {
term-id 0;
   forwarding-class best-effort {
      loss-priority low code-points [ 000100 000010 ];
   }
}

Junos OS espera un loss-priority valor. Sin embargo, la configuración de OpenConfig no proporciona esto. De forma predeterminada, el loss-priority valor se considera como low.

El valor OpenConfig code-point se proporciona utilizando formato de bits como octetos y valores decimales como decimales. Para evitar confusiones, puede proporcionar code-point valores en formato decimal y el script los convierte en un patrón de 6 bits y lo envía al demonio de administración. Por ejemplo:

set openconfig-qos:qos classifiers classifier DSCP terms term 0 conditions ipv4 config dscp-set [2 3]

Configuración del clasificador MPLS

Consulte la Tabla 3 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/classifiers/classifier/terms/term/conditions/mpls
  • /qos/classifiers/classifier/terms/term/conditions/mpls/config
  • /qos/classifiers/classifier/terms/term/conditions/mpls/config/traffic-class
  • /qos/classifiers/classifier/terms/term/actions/config/target-group
Tabla 3: Configuración del clasificador MPLS

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type <>;
            }
            terms {
                term {
                    id <>;
                    conditions {
                        mpls {
                            config {
                                traffic-class <>;
                            }
                        }
                    }
                    actions {
                        config {
                            target-group <>;
                            }
                        }
                    }
                 }
                term {
                    id <>;
                    conditions {
                        mpls {
                            config {
                                traffic-class <>;
                            }
                        }
                    }
                    actions {
                        config {
                            target-group <>;
                            }
                        }
                    }
                 }
             }
         }
    }
}
class-of-service {
    classifiers {
        exp <> {
            forwarding-class <> {
                loss-priority low code-points <>;
            }
            forwarding-class <> {
                loss-priority low code-points <>;
            }
        }
    }
}

Junos OS espera un loss-priority valor. La configuración de OpenConfig no proporciona esto. De forma predeterminada, el loss-priority valor es low.

El valor OpenConfig code-point se proporciona utilizando formato de bits como octetos y valores decimales como decimales. Para evitar confusiones, proporcione code-point valores en formato decimal.

Configuración de reglas de reescritura

Consulte la Tabla 4 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/classifiers/classifier/terms/term/actions/remark
  • /qos/classifiers/classifier/terms/term/actions/remark/config
  • /qos/classifiers/classifier/terms/term/actions/remark/config/set-dscp
  • /qos/classifiers/classifier/terms/term/actions/remark/config/set-dot1p
  • /qos/classifiers/classifier/terms/term/actions/remark/config/set-mpls-tc
Tabla 4: Configuración de reglas de reescritura

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type IPV4;
            }
            terms {
                term 0 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 5;
                            }
                        }
                    }
                }
                term 1 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 6;
                            }
                        }
                    }
                }
            }
        }
    }
}
class-of-service {
    rewrite-rules {
        dscp <> {
            forwarding-class <> {
                loss-priority low code-point 000101 term-id 0;
            }
            forwarding-class <> {
                loss-priority low code-point 000110 term-id 1;
            }
        }
    }
}
openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type IPV6;
            }
            terms {
                term 0 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 7;
                            }
                        }
                    }
                }
                term 1 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-dscp 8;
                            }
                        }
                    }
                }
            }
        }
    }
}
class-of-service {
    rewrite-rules {
        dscp-ipv6 <> {
            forwarding-class <> {
                loss-priority low code-point 000111 term-id 0;
            }
            forwarding-class <> {
                loss-priority low code-point 001000 term-id 1;
            }
        }
    }
}
openconfig-qos:qos {
    classifiers {
        classifier <> {
            config {
                name <>;
                type MPLS;
            }
            terms {
                term 0 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-mpls-tc 5;
                            }
                        }
                    }
                }
                term 1 {
                    actions {
                        config {
                            target-group <>;
                        }
                        remark {
                            config {
                                set-mpls-tc 6;
                            }
                        }
                    }
                }
            }
        }
    }
}
class-of-service {
    rewrite-rules {
        exp <> {
            forwarding-class <> {
                loss-priority low code-point 101 term-id 0;
            }
            forwarding-class <> {
                loss-priority low code-point 110 term-id 1;
            }
        }
    }
}

A continuación se muestran los grupos de reenvío usados para la configuración de reglas de reescritura:

openconfig-qos:qos {
    forwarding-groups {
        forwarding-group <> {
            config {
                name <>;
                output-queue 0;
            }
        }
        forwarding-group <> {
              config {
                  name <>;
                  output-queue 1;
             }
        }
    }
}
class-of-service {
    forwarding-classes {
        class <> queue-num 0;
        class <> queue-num 1;
    }
}

Configuración del enlace del clasificador

Consulte la Tabla 5 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/interfaces/interface/interface-id
  • /qos/interfaces/interface/interface-ref/config/interface
  • /qos/interfaces/interface/interface-ref/config/subinterface
  • /qos/interfaces/interface/input/classifiers/classifier/type
  • /qos/interfaces/interface/input/classifiers/classifier/config/name
  • /qos/interfaces/interface/input/classifiers/classifier/config/type
Nota:

Para seguir más fácilmente los ejemplos de OpenConfig a continuación, las variables se utilizan en el árbol de configuración de OpenConfig.

Tabla 5: Configuración del enlace del clasificador

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos {
    interfaces {
        interface {
            interface-id et-0/0/1.0;
                input {
                    classifiers {
                        classifier {
                            type <>;  
                            config {
                                name <>;
                                type <>;
                            }
                        }
                    }
                }
            }
        }
        interface {  
               interface-id ae0;  
            interface-ref { 
                config { 
                    subinterface <>; 
                } 
            } 
                 input {  
                        classifiers {  
                                classifier {  
                                    type <>;    
                                        config {  
                                            name <>;  
                                                type <>;
                                    }  
                              }
                        } 
            }
        }
    }
}
class-of-service {
    et-0/0/1 {
        unit 0 {
            classifiers {
                dscp <>;
             }
        }
    }
    ae0 { 
        unit <> { 
            classifiers { 
                exp <>;  
            } 
        } 
    }  
}

El enlace del clasificador se puede formar a partir de la tabla de interfaces asignando el clasificador y la interfaz.

Esta configuración también admite comodines (*). Por ejemplo:

set openconfig-qos:qos interfaces interface et-*/*/*.0 interface-ref config interface et-*/*/*

set openconfig-qos:qos interfaces interface et-*/*/*.0 interface-ref config subinterface 0

set openconfig-qos:qos interfaces interface et-*/*/*.0 input classifiers classifier IPV4 config name DSCP

openconfig-qos:qos {
   interfaces interface <> {
       interface-ref {
           config interface <>;
       }
       output scheduler-policy {
            config name <>;
       }
   }
}
class-of-service {
    interfaces <> {
        output-traffic-control-profile <>;
    }
}

Configuración del programador

Consulte la Tabla 6 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/scheduler-policies/scheduler-policy/name
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/sequence
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/priority
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/output/config/output-fwd-group
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/sequence
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/bc
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/cir
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/cir-pct
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/pir
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/two-rate-three-color/config/pir-pct
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/id
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/id
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/input-type
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/queue
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/inputs/input/config/weight
  • /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/config/priority
Nota:

Para seguir más fácilmente los ejemplos de OpenConfig a continuación, las variables se utilizan en los árboles de configuración de OpenConfig a continuación.

Tabla 6: Configuración del programador

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos { 
    scheduler-policies { 
        scheduler-policy { 
             name smap; 
             schedulers {
                 scheduler { 
                     sequence:4 
                     two-rate-three-color { 
                       config {
                          cir-pct:10
                       } 
                     } 
                 } 
                 scheduler { 
                     sequence:1 
                     two-rate-three-color { 
                      config {
                         cir-pct:1 
                      }
                     } 
                 }
                 scheduler { 
                     sequence:5  
                     two-rate-three-color { 
                       config {
                         cir-pct:1 
                       }
                     } 
                 }
                 scheduler { 
                     sequence:2 
                     priority: STRICT
                     two-rate-three-color { 
                      config {
                         cir-pct:1 
                       }
                     } 
                 }
                 scheduler { 
                     sequence:0 
                     two-rate-three-color { 
                       config {
                          cir-pct:1 
                      }
                     } 
                 }
                 scheduler { 
                     sequence:3 
                     two-rate-three-color { 
                       config {
                        cir-pct:1 
                      }
                     }
                 } 
           } 
       } 
    } 
} 
class-of-service {
 scheduler-maps { 
    smap { 
        forwarding-class af1 scheduler sched_af1; 
        forwarding-class af2 scheduler sched_af2; 
        forwarding-class af3 scheduler sched_af3; 
        forwarding-class af4 scheduler sched_af4; 
        forwarding-class be1 scheduler sched_be1; 
        forwarding-class nc1 scheduler sched_nc1; 
    } 
 } 
 schedulers { 
    sched_af1 { 
        transmit-rate percent 10; 
        buffer-size shared; 
        priority low; 
    } 
    sched_af2 { 
        transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
    sched_af3 { 
        transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
    sched_af4 { 
    transmit-rate percent 1; 
        buffer-size shared; 
        priority strict-high; 
    } 
    sched_be1 { 
        transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
    sched_nc1 { 
   transmit-rate percent 1; 
        buffer-size shared; 
        priority low; 
    } 
 } 
}

Los parámetros de OpenConfig que no se admiten con el scheduler comando incluyen buffer-size, excess-rates, y excess priorities. Solo STRICT-HIGH se admite la prioridad. Si configura una prioridad, se trata como STRICT-HIGH. De lo contrario, la prioridad es LOW de forma predeterminada.

Los campos de OpenConfig que son campos no compatibles bajo scheduler comando son cir-pct-remaining, pir-pct-remainingbe , (tamaño de ráfaga excesivo) y bc (tamaño de ráfaga confirmado). Estos campos no son compatibles con la plataforma PTX, pero sí con la plataforma MX.

No hay ningún parámetro para configurar un nombre de programador en OpenConfig. En su lugar, el nombre se deduce combinando el nombre Junos scheduler-map y forwarding group. Por ejemplo, los siguientes parámetros crean el nombre sched_smap_assured-forwardingdel programador.

<schedulers> {
       <name> “sched” _ “_” _$smap_name _ "_" _ $out_fwd_group;
   }
Nota:

El nombre del programador puede tener 64 caracteres. Dado que la asignación del programador y los nombres de las clases de reenvío se concatenan en las configuraciones de OpenConfig, se debe tener cuidado al proporcionarlos.

El número de OpenConfig sequence debe ser el mismo que el queuenum valor que representa el grupo de reenvío. Por ejemplo, si assured-forwarding está adjunto a la cola 2, entonces sequence el número debe ser 2. Durante la exportación del estado, el queuenum al que se adjunta se target-group exporta como número sequence .

set openconfig-qos:qos scheduler-policies scheduler-policy smap schedulers scheduler 2 output config output-fwd-group assured-forwarding

openconfig-qos:qos { 
   scheduler-policies scheduler-policy sp1 {
       schedulers scheduler 0 {
	   inputs {
	       input AF4 {
                 config id AF4;
	          input-type QUEUE;
	          queue 2;
	          weight 60;
	       }
	   }
       }
   }
}
class-of-service {
    scheduler-maps sp1{
        forwarding-class AF4 scheduler sched_scheduler_AF4;
    }
    traffic-control-profiles {
        tcp_sp1
             schedule-map sp1;
        }
    }
}
// If STRICT priority is configured:
class-of-service {
    schedulers {
        scheduler_AF4{
            transmit-rate percent 100;
            excess-rate percent 60;
            priority high;
        }
    }
}
// If *not* STRICT priority, use Weighted Round Robin (WRR)mode:
class-of-service {
    schedulers {
        scheduler_AF4{
            transmit-rate percent 0;
            excess-rate percent 60;
            priority low;
        }
    }
}

Nota: Se agregan valores a las configuraciones anteriores para una mejor comprensión de la asignación.

El valor de hoja de cola se traduce como el valor de clase de reenvío equivalente en la asignación del programador.

Cuando configure una prioridad estricta del programador:

  • Configure transmit-rate el valor como 100 por ciento para cada clase de reenvío.

  • La clase priority de reenvío se basa en los pesos de la clase de reenvío de OpenConfig en orden ascendente.

  • La clase priority de reenvío se asigna en el orden de "strict-high:high:medium-high:medium-low:low:low:low:low.

En los casos en los que no se configura una prioridad estricta del programador (modo WRR):

  • Configure transmit-rate el valor como 0 por ciento para cada clase de reenvío.

  • Configure excess-rate el valor con el mismo valor que los pesos de cada clase de reenvío de OpenConfig. No se permite un valor de peso superior a 100.

Solo puede usar el valor para input-type con la QUEUE ruta de OpenConfig /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/input/config/input-type porque QUEUE es el único valor de enumeración que se puede asignar a Junos OS. Del mismo modo, si se suscribe a la ruta de recursos /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/state/input-type, siempre se transmitirá la hoja de enumeración QUEUE a un recopilador.

Desde Junos OS, cree un perfil de control de tráfico (TCP) para la configuración de asignación del programador y utilice el TCP para enlazar la configuración a la interfaz. La configuración anterior de Junos OS utiliza TCP tcp_sp1 y la asignación del sp1programador.

Configuración del mapa del programador

Consulte la Tabla 7 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/interfaces/interface/interface-id
  • /qos/interfaces/interface/output/scheduler-policy/config/name
Nota:

Para seguir más fácilmente los ejemplos de OpenConfig a continuación, las variables se utilizan en los árboles de configuración de OpenConfig a continuación.

Tabla 7: Configuración del mapa del programador

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos {
   interfaces {
      interface {
         interface-id et-0/0/1;
            output {
               scheduler-policy {
                  config {
                     name <>;
                  }
               }
            }
         }
      }
   }
}
class-of-service {
   interfaces et-0/0/1{
      output-traffic-control-profile tcp_sp1;
   }
}

Los mapas del programador solo se pueden enlazar a interfaces físicas (IFD).

También se admiten comodines. Por ejemplo:

set openconfig-qos:qos interfaces interface et-*/*/* interface-ref config interface et-*/*/*

set openconfig-qos:qos interfaces interface et-*/*/* output scheduler-policy config name smap

Configuración del perfil de caída

Consulte la tabla 8 para ver las asignaciones de configuración de las siguientes rutas de OpenConfig:

  • /qos/queue-management-profiles/queue-management-profile/config/name
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/min-threshold
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/max-threshold
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/max-drop-probability-percent
  • /qos/queue-management-profiles/queue-management-profile/wred/uniform/config/enable-ecn
  • /qos/queue-management-profiles/queue-management-profile/wred/
  • /qos/interfaces/interface/output/queues/queue/config/name

  • /qos/interfaces/interface/output/queues/queue/config/queue-management-profile

Tabla 8: Configuración del perfil de caída

Configuración de OpenConfig

Configuración de Junos

openconfig-qos:qos {
   queue-management-profiles {
      queue-management-profile <> {
         wred {
            uniform {
               config {
                  min-threshold; (not for MX Series)
                  max-threshold; (not for MX Series)
                  enable-ecn <true | false>; (not for MX Series)
                  max-drop-probability-percent <>;
               }
            }
         }
      }
   }
}
class-of-service {
   drop-profiles {
       <profile-name> {
           fill-level <> drop-probability <>;
       }
   schedulers {
      <scheduler-name> {
         explicit-congestion-notification;
      }
   }
}

En OpenConfig, los niveles de umbral mínimo y máximo se configuran en bytes. En Junos, se configura cada umbral como un porcentaje del nivel de llenado de cola. Puede repetir la fill-level instrucción, combinada con la drop-probability instrucción, para configurar los umbrales mínimo y máximo.

openconfig-qos:qos { 
   queue-management-profile {
      config {
         name <>; 
   }
   wred {
      uniform {
         config {
           min-threshold-percent <>;
	    max-threshold-percent <>;
	    max-drop-probability-percent <>;
	 }
      }
   }
}
class-of-service {
    drop-profiles {
        <profile-name> {
        interpolate {
            fill-level [ <> <> ];
            drop-probability <>;
        }
    }
}
openconfig-qos:qos {
    interfaces interface <> {
        interface-ref {
            config interface <>;
        }
        output queues <> {
            config {
                name <>;
                queue-management-profile <>;
            }
        }
    }
}
interfaces {
    <interface-name>{
        scheduler-map <>;
    }
}
scheduler-maps {
    <scheduler-map-name> {
        forwarding-class best-effort scheduler <>;
    }
}
schedulers {
    <scheduler-name> {
        drop-profile-map loss-priority any protocol any drop-profile <>;
    }
} 
openconfig-qos:qos {
    scheduler-policies scheduler-policy <> {
        schedulers scheduler <> { 
    }
}
class-of-service {
    schedulers {
        <scheduler> {
            priority strict-high;
        }
    }
}

Cuando se enlaza el queue-management perfil a la cola en la configuración de la interfaz, la clase de modelo de servicio de Junos OS adjunta el drop perfil al mapa del programador que ya está presente en la misma salida de interfaz. Para adjuntar un drop perfil a la interfaz, la interfaz debe tener un scheduler-policy adjunto en la salida en /qos/interfaces/interface/output/scheduler-policy/