Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
Juniper Cloud-Native Router User Guide
Table of Contents Expand all
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Cloud-Native Router Interfaces Overview

Release: JCNR 23.3
{}
Change Release
date_range 27-Nov-24

This topic provides information on the network communication interfaces provided by the JCNR-Controller. Fabric interfaces are aggregated interfaces that receive traffic from multiple interfaces. Interfaces to which different workloads are connected are called workload interfaces.

Read this topic to understand the network communication interfaces provided by the JCNR-Controller. We cover interface names, what they connect to, how they communicate. and the services they provide.

Juniper Cloud-Native Router Interface Types

Juniper Cloud-Native Router supports two types of interfaces:

  • Fabric interfaces—Aggregated interfaces that receive traffic from multiple interfaces. Fabric interfaces are always physical interfaces. They can either be a physical function (PF) or a virtual function (VF). The throughput requirement for these interfaces is higher, hence multiple hardware queues are allocated to them. Each hardware queue is allocated with a dedicated CPU core . The interfaces are configured for the cloud-native router using the appropriate values.yaml file in the deployer helmcharts. You can view the interface mapping using the dpdkinfo -c command. View the Troubleshoot via the vRouter CLI topic in the Deployment Guide for more details. You also have fabric workload interfaces that have low throughput requirement. Only one hardware queue is allocated to the interface, thereby saving precious CPU resources. These interfaces can be configured using the appropriate values.yaml file in the deployer helmcharts.

  • Workload interfaces—Interfaces to which different workloads are connected. They can either be software-based or hardware-based interfaces. Software-based interfaces are either high-performance interfaces using the Data Plane Development Kit (DPDK) poll mode driver (PMD) or a low-performance interfaces using the kernel driver. Typically the DPDK interfaces are used for data traffic such as the GPRS Tunneling Protocol for user data (GTP-U) traffic and the kernel-based interfaces are used for control plane data traffic such as TCP. The kernel pod interfaces are typically for the operations, administration and maintenance (OAM) traffic. The interfaces are configured as a veth-pair, with one end of the interface in the pod and the other end in the Linux kernel on the host. Cloud-Native Router also supports bonded interfaces via the link bonding PMD. These interfaces can be configured using the appropriate values.yaml file in the deployer helmcharts.

    Cloud-Native Router supports different types of VLAN interfaces including trunk, access and sub-interfaces across fabric and workload interfaces.

    Cloud-Native Router Interface Details

    The different Cloud-Native Router interfaces are provided in detail below:

  • Agent interface

    vRouter has only one agent interface. The agent interface enables communication between the vRouter-agent and the vRouter. On the vRouter CLI when you issue the vif --list command, the agent interface looks like this:

    content_copy zoom_out_map
    vif0/0      Socket: unix
                Type:Agent HWaddr:00:00:5e:00:01:00
                Vrf:65535 Flags:L2 QOS:-1 Ref:3
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0
                RX packets:0  bytes:0 errors:0
                TX packets:650  bytes:99307 errors:0
                Drops:0
  • DPDK VF workload interfaces

    These interfaces connect to the radio units (RUs) or millimeter-wave distributed units (mmWave-DUs). On the vRouter CLI when you issue the vif --list command, the DPDK VF workload interface looks like this:

    content_copy zoom_out_map
    vif0/5      PCI: 0000:ca:19.1 (Speed 10000, Duplex 1)
                Type:Workload HWaddr:9e:52:29:9e:97:9b
                Vrf:0 Flags:L2Vof QOS:-1 Ref:9
                RX queue  packets:29087 errors:0
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                Fabric Interface: 0000:ca:19.1  Status: UP  Driver: net_iavf
                Vlan Mode: Access  Vlan Id: 1250  OVlan Id: 1250  
                RX packets:29082  bytes:6766212 errors:5
                TX packets:0  bytes:0 errors:0
                Drops:29896
  • DPDK VF fabric interfaces (Physical Trunk)

    DPDK VF fabric interfaces, which are associated with the physical network interface card (NIC) on the host server, accept traffic from multiple VLANs.

    The cRPD interface configuration using the show configuration command looks like this (the output is trimmed for brevity):

    content_copy zoom_out_map
    interfaces {
        ens786f0v0 {
            unit 0 {
                family bridge {
                    interface-mode trunk;                     
                    vlan-id-list 1001-1100;                    
                }
            }
        }
    }   

    On the vRouter CLI when you issue the vif --list command, the DPDK VF fabric interface looks like this:

    content_copy zoom_out_map
    vif0/1    PCI: 0000:31:01.0 (Speed 10000, Duplex 1)    
              Type:Physical HWaddr:d6:22:c5:42:de:c3
              Vrf:65535 Flags:L2Vof QOS:-1 Ref:12
              RX queue packets:11813 errors:1
              RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 1 0
              Fabric Interface: 0000:31:01.0 Status: UP Driver: net_iavf
              Vlan Mode: Trunk Vlan: 1001-1100
              RX packets:0 bytes:0 errors:49962
              TX packets:18188356 bytes:2037400554 errors:0
              Drops:49963 
  • Active or standby bond interfaces (Bond Trunk)

    Bond interfaces accept traffic from multiple VLANs. A bond interface runs in the active or standby mode (mode 0). You define the bond interface in the helm chart configuration as follows:

    content_copy zoom_out_map
    bondInterfaceConfigs:
    - name: "bond0"
      mode: 1          # ACTIVE_BACKUP MODE
      slaveInterfaces:
      - "ens2f0v1"
      - "ens2f1v1"
    content_copy zoom_out_map
     - bond0:
          ddp: "auto" 
          interface_mode: trunk
          vlan-id-list: [1001-1100]
          storm-control-profile: rate_limit_pf1
          native-vlan-id: 1001
          no-local-switching: true

    The cRPD interface configuration using the show configuration command looks like this (the output is trimmed for brevity):

    content_copy zoom_out_map
    interfaces {
        bond0 {
             unit 0 {
                 family bridge
                 interface-mode trunk;
                 vlan-id-list 1001-1100;                    
             }
        }
    }

    On the vRouter CLI when you issue the vif --list command, the bond interface looks like this:

    content_copy zoom_out_map
    vif0/2      PCI: 0000:00:00.0 (Speed 10000, Duplex 1)
                Type:Physical HWaddr:32:f8:ad:8c:d3:bc
                Vrf:65535 Flags:L2Vof QOS:-1 Ref:8
                RX queue  packets:1882 errors:0
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0
                Fabric Interface: eth_bond_bond0  Status: UP  Driver: net_bonding
                Slave Interface(0): 0000:81:01.0  Status: UP  Driver: net_iavf
                Slave Interface(1): 0000:81:03.0  Status: UP  Driver: net_iavf
                Vlan Mode: Trunk  Vlan: 1001-1100
                RX packets:8108366000  bytes:486501960000 errors:4234
                TX packets:65083776  bytes:4949969408 errors:0
                Drops:8108370394
  • Pod interfaces using DPDK data plane (Virtio Trunk) virtio

    The trunk interfaces accept only tagged packets. Any untagged packets are dropped. These interfaces can accept a VLAN filter to allow only specific VLAN packets. A trunk interface can be a part of multiple bridge-domains (BD). A bridge domain is a set of logical ports that share the same flooding or broadcast characteristics. Like a VLAN, a bridge domain spans one or more ports of multiple devices. Virtio interfaces are associated with pod interfaces that use virtio on the DPDK data plane.

    The cRPD interface configuration using the show configuration command looks like this (the output is trimmed for brevity):

    content_copy zoom_out_map
    interfaces {
        vhost242ip-93883f16-9ebb-4acf-b {
             unit 0 {
                 family bridge {
                     interface-mode trunk;                    
                     vlan-id-list 1001-1003;
                 }
             }
        }
    }

    On the vRouter CLI when you issue the vif --list command, the virtio with DPDK data plane interface looks like this:

    content_copy zoom_out_map
    vif0/3    PMD: vhost242ip-93883f16-9ebb-4acf-b
              Type:Virtual HWaddr:00:16:3e:7e:84:a3
              Vrf:65535 Flags:L2 QOS:-1 Ref:13
              RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
              Vlan Mode: Trunk Vlan: 1001-1003
              RX packets:0 bytes:0 errors:0
              TX packets:10604432 bytes:1314930908 errors:0
              Drops:0
              TX port packets:0 errors:10604432 
  • Pod interfaces using Kernel interface

    The access interfaces accept both tagged and untagged packets. Untagged packets are tagged with the access VLAN or access BD. Any tagged packets other than the ones with access VLAN are dropped. The access interfaces is a part of a single bridge-domain. It does not have any parent interface.

    The cRPD interface configuration using the show configuration command looks like this (the output is trimmed for brevity):

    content_copy zoom_out_map
    routing-instances {
        switch {
             instance-type virtual-switch;
             bridge-domains {                                                                                                                                       
                 bd1001 {
                     vlan-id 1001;                            
                     interface jvknet1-eed79ff;
                 }
             }
        }
    }

    On the vRouter CLI when you issue the vif --list command, the veth pair interface looks like this:

    content_copy zoom_out_map
    vif0/4      Ethernet: jvknet1-88c44c3    
                Type:Virtual HWaddr:02:00:00:3a:8f:73
                Vrf:0 Flags:L2Vof QOS:-1 Ref:10
                RX queue packets:524 errors:0
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                Vlan Mode: Access Vlan Id: 1001 OVlan Id: 1001
                RX packets:9 bytes:802 errors:515
                TX packets:0 bytes:0 errors:0
                Drops: 525
  • L2 VLAN sub-interfaces

    You can configure a user pod with a Layer 2 VLAN sub-interface and attach it to the Cloud-Native Router instance. VLAN sub-interfaces are like logical interfaces on a physical switch or router. They access only tagged packets that match the configured VLAN tag. A sub-interface has a parent interface. A parent interface can have multiple sub-interfaces, each with a VLAN ID. When you run the cloud-native router, you must associate each sub-interface with a specific VLAN.

    The cRPD interface configuration viewed using the show configuration command is as shown below (the output is trimmed for brevity).

    For L2:

    content_copy zoom_out_map
    routing-instances {
        switch {
             instance-type virtual-switch;
             bridge-domains {                                                                                                                                       
                 bd100 {
                     vlan-id 100;
                     interface vhostnet1-1e555ee1-7d93-40.100;
                 }
             }
         }
    }

    On the vRouter, a VLAN sub-interface configuration is as shown below:

    content_copy zoom_out_map
    vif0/5      Virtual: vhostnet1-71cd7db1-1a5e-49.3003 Vlan(o/i)(,S): 3003/3003 Parent:vif0/4
                Type:Virtual(Vlan) HWaddr:00:99:99:99:33:09
                Vrf:0 Flags:L2 QOS:-1 Ref:3
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0
                RX packets:0  bytes:0 errors:0
                TX packets:0  bytes:0 errors:0
                Drops:0
    Note:

    To see the VLAN sub-interfaces on the vRouter, connect to the vRouter agent by executing the command kubectl exec -it -n contrail contrail-vrouter-<agent container> -- bash command, and then run the command vif --get.

  • L3 Physical Interface

    content_copy zoom_out_map
    vif0/1      PCI: 0000:17:01.1 (Speed 25000, Duplex 1) NH: 7 MTU: 9000 <- PCI Address                                              ​
                Type:Physical HWaddr:d6:93:87:91:45:6c IPaddr: 192.21.2.4 <- Physical interface​
                IP6addr:2001:192:21:2::4 <- IPv6 address​
                DDP: OFF SwLB: ON​
                Vrf:2 Mcast Vrf:2 Flags:L3L2Vof QOS:0 Ref:16 <- L3 (only) interface
                RX port   packets:423168341 errors:0​
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0​
                Fabric Interface: 0000:17:01.1  Status: UP  Driver: net_iavf​
                RX packets:423168341  bytes:29123418594 errors:0​
                TX packets:417508247  bytes:417226216530 errors:0​
                Drops:8​
                TX port   packets:417508247 errors:0​
    content_copy zoom_out_map
    vif0/2      PMD: ens2f2 NH: 12 MTU: 9000 <- Tap interface name as seen by cRPD​
                Type:Host HWaddr:d6:93:87:91:45:6c IPaddr: 192.21.2.4 <- Tap interface type​
                IP6addr:2001:192:21:2::4​
                DDP: OFF SwLB: ON​
                Vrf:2 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:15 TxXVif:1  <-cross-connected to vif 1​
                RX device packets:306995  bytes:25719830 errors:0​
                RX queue  packets:306995 errors:0​
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0​
                RX packets:306995  bytes:25719830 errors:0​
                TX packets:307489  bytes:25880250 errors:0​
                Drops:0​
                TX queue  packets:307489 errors:0​
                TX device packets:307489  bytes:25880250 errors:0

    Corresponding interface state in the cRPD:

    content_copy zoom_out_map
    show interfaces routing ens2f2​
    Interface        State Addresses​
    ens2f2           Up    MPLS  enabled​
                           ISO   enabled​
                           INET  192.21.2.4​
                           INET6 2001:192:21:2::4​
                           INET6 fe80::c5da:7e9c:e168:56d7​
                           INET6 fe80::a0be:69ff:fe59:8b58

    L3 Bond Interface

    content_copy zoom_out_map
    vif0/3      PCI: 0000:00:00.0 (Speed 25000, Duplex 1) NH: 6 MTU: 1514 <- Bond interface (PCI id 0)​
                Type:Physical HWaddr:50:7c:6f:48:75:74 IPaddr:192.7.7.4 <- Physical interface​
                IP6addr:2001:192:7:7::4​
                DDP: OFF SwLB: ON​
                Vrf:1 Mcast Vrf:1 Flags:TcL3L2Vof QOS:0 Ref:18​
                RX port   packets:402183888 errors:0​
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0​
                Fabric Interface: eth_bond_bond34  Status: UP  Driver: net_bonding <- Bonded master​
                Slave Interface(0): 0000:5e:00.0  Status: UP  Driver: net_ice <- Bond slave - 1​
                Slave Interface(1): 0000:af:00.0  Status: UP  Driver: net_ice <- Bond slave - 2​
                RX packets:402183888  bytes:49519387070 errors:0​
                TX packets:79226  bytes:7330912 errors:0​
                Drops:1393​
                TX port   packets:79226 errors:0​
    content_copy zoom_out_map
    vif0/4      PMD: bond34 NH: 11 MTU: 9000​
                Type:Host HWaddr:50:7c:6f:48:75:74 IPaddr:192.7.7.4 <- Tap interface​
                IP6addr:2001:192:7:7::4​
                DDP: OFF SwLB: ON​
                Vrf:1 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:15 TxXVif:3 <- Tap interface for bond​
                RX device packets:76357  bytes:7101918 errors:0​
                RX queue  packets:76357 errors:0​
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0​
                RX packets:76357  bytes:7101918 errors:0​
                TX packets:75349  bytes:6946908 errors:0​
                Drops:0​
                TX queue  packets:75349 errors:0​
                TX device packets:75349  bytes:6946908 errors:0​
    Corresponding interface state in the cRPD:
    content_copy zoom_out_map
    show interfaces routing bond34​
    Interface        State Addresses​
    bond34           Up    INET6 2001:192:7:7::4​
                           ISO   enabled​
                           INET  192.7.7.4​
                           INET6 fe80::527c:6fff:fe48:7574​
  • L3 Pod Vhost-User Interface

    content_copy zoom_out_map
    vif0/8      PMD: vhostnet1-aa0984c7-0c1d-40a4-87 NH: 35 MTU: 9160 <- vhost-user interface of CNF​
                Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:2.51.1.3 <- pod/ workload​
                IP6addr:abcd:2:51:1::3 <- IPv6 address of the pod​
                DDP: OFF SwLB: ON​
                Vrf:3 Mcast Vrf:3 Flags:PL3DProxyEr QOS:-1 Ref:14​
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0​
                RX packets:0  bytes:0 errors:0​
                TX packets:0  bytes:0 errors:0​
                Drops:0​

    Corresponding interface state in the cRPD:

    content_copy zoom_out_map
    show interfaces routing vhostnet1-aa0984c7-0c1d-40a4-87​
    Interface        State Addresses​
    vhostnet1-aa0984c7-0c1d-40a4-87 Up    INET6 enabled​
                                          INET6 abcd:2:51:1::3​
                                          ISO   enabled​
                                          INET  enabled​
                                          INET  2.51.1.3​
  • L3 Kernel Interface

    content_copy zoom_out_map
    vif0/13     Ethernet: jvknet1-0af476e NH: 35 MTU: 9160 <- Kernel interface (jvk) of CNF​
                Type:Virtual HWaddr:00:00:5e:00:01:00 IPaddr:2.51.1.4 <- pod/ workload​
                IP6addr:abcd:2:51:1::4​
                DDP: OFF SwLB: ON​
                Vrf:1 Mcast Vrf:1 Flags:PL3DVofProxyEr QOS:-1 Ref:11​
                RX port   packets:47 errors:0​
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0​
                RX packets:47  bytes:13012 errors:0​
                TX packets:0  bytes:0 errors:0​
                Drops:47​
    Corresponding interface state in the cRPD:
    content_copy zoom_out_map
    show interfaces routing jvknet1-0af476e​
    Interface        State Addresses​
    jvknet1-0af476e  Up    INET6 enabled​
                           INET6 abcd:2:51:1::4​
                           ISO   enabled​
                           INET  enabled​
                           INET  2.51.1.4
  • L3 VLAN Sub-Interfaces

    Starting in Juniper Cloud-Native Router Release 23.2, the cloud-native router supports the use of VLAN sub-interfaces in L3 mode.

    content_copy zoom_out_map
    vif0/2      PCI: 0000:17:01.1 (Speed 25000, Duplex 1) NH: 7 MTU: 9000                    
                Type:Physical HWaddr:d6:93:87:91:45:6c IPaddr:0.0.0.0
                IP6addr:fe80::d493:87ff:fe91:456c <- IPv6 address
                DDP: OFF SwLB: ON
                Vrf:2 Mcast Vrf:2 Flags:L3L2Vof QOS:0 Ref:16 <- L3 (only) interface
                RX port   packets:423168341 errors:0
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                Fabric Interface: 0000:17:01.1  Status: UP  Driver: net_iavf
                RX packets:423168341  bytes:29123418594 errors:0
                TX packets:417508247  bytes:417226216530 errors:0
                Drops:8
                TX port   packets:417508247 errors:0
    content_copy zoom_out_map
    vif0/5      PMD: ens1f0v1 NH: 12 MTU: 9000
                Type:Host HWaddr:d6:93:87:91:45:6c IPaddr:0.0.0.0
                IP6addr:fe80::d493:87ff:fe91:456c
                DDP: OFF SwLB: ON
                Vrf:2 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:15 TxXVif:2 <- L3 (only) tap interface
                RX device packets:306995  bytes:25719830 errors:0
                RX queue  packets:306995 errors:0
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                RX packets:306995  bytes:25719830 errors:0
                TX packets:307489  bytes:25880250 errors:0                                                                                                     
                Drops:0
                TX queue  packets:307489 errors:0
                TX device packets:307489  bytes:25880250 errors:0
    content_copy zoom_out_map
    vif0/9      Virtual: ens1f0v1.201 Vlan(o/i)(,S): 201/201 Parent:vif0/2 NH: 36 MTU: 1514 <- VLAN fabric sub-intf with parent as vif 2 and VLAN tag as 201
                Type:Virtual(Vlan) HWaddr:d6:93:87:91:45:6c IPaddr:103.1.1.2
                IP6addr:fe80::d493:87ff:fe91:456c
                DDP: OFF SwLB: ON
                Vrf:1 Mcast Vrf:1 Flags:L3DProxyEr QOS:-1 Ref:4
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                RX packets:0  bytes:0 errors:0
                TX packets:0  bytes:0 errors:0
                Drops:0
    content_copy zoom_out_map
    vif0/10     Virtual: ens1f0v1.201 Vlan(o/i)(,S): 201/201 Parent:vif0/5 NH: 21 MTU: 9000
                Type:Virtual(Vlan) HWaddr:d6:93:87:91:45:6c IPaddr:103.1.1.2
                IP6addr:fe80::d493:87ff:fe91:456c
                DDP: OFF SwLB: ON
                Vrf:1 Mcast Vrf:65535 Flags:L3DProxyEr QOS:-1 Ref:4 TxXVif:9 <- VLAN tap sub-intf cross connected to fabric sub-intf vif 9 and parent as tap intf vif 5
                RX queue errors to lcore 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                RX packets:0  bytes:0 errors:0
                TX packets:0  bytes:0 errors:0
                Drops:0

    Corresponding interface state in cRPD:

    content_copy zoom_out_map
    show interfaces routing ens1f0v1.201
    Interface          State Addresses
    ens1f0v1.201       Up    MPLS  enabled
                       ISO   enabled
                       INET6 fe80::b89c:fff:feab:e2c9
footer-navigation