ligato / vpp-agent

⚡️ Control plane management agent for FD.io's VPP
https://docs.ligato.io/
Apache License 2.0
247 stars 127 forks source link

Unable to use REST plugin to configure vpp loopback interface #1906

Open WentianBu opened 1 year ago

WentianBu commented 1 year ago

I am trying to make some initial configuration through RESTful plugin. My vpp version is 22.10 and it has 2 DPDK interfaces TGE1 and TGE2. I'm using the linux-cp plugin of VPP. I hope to create a loopback interface, but the ligato seems not support linux-cp plugin configuration, so I write the lcp create command in the bootstrap.vpp file, and in my vpp.conf, I use exec bootstrap.vpp to execute the commands when vpp starting.

My bootstrap.vpp is:

create loopback interface
lcp create loop0 host-if loop0
lcp create TGE1 host-if eth1
lcp create TGE2 host-if eth2

Then I write a init.yaml and PUT it to the ligato RESTful plugin to configure the IP addresses and the states of the interfaces.

vppConfig:
  interfaces:
  - name: "loop0"
    type: SOFTWARE_LOOPBACK
    enabled: true
    ipAddresses:
    - 10.200.0.1/24
    - fec0:2020::1/64
  - name: "TGE1"
    type: DPDK
    enabled: true
    ipAddresses:
    - 10.200.20.10/24
    - fec0:2023::1/96
  - name: "TGE2"
    type: DPDK
    enabled: true
    ipAddresses:
    - 10.200.30.10/24
    - fec0:2024::2/96

However, I found that the ip addresses of TGE1 and TGE2 were configured correctly, but loop0 wasn't configured. Actually, when I use vppctl show int addr, I found a new loopback loop1 was created and configured with the ip addresses of loop0. The loop0 and the host-interface loop0 created by linux-cp stayed down and unconfigured. I tried to solve the problem. I dumped the interfaces with the RESTful api, and found that the name of loop0 is actually UNTAGGED-loop0. I modified the YAML configuration above but it didn't work. The behavior was almost same: a new loopback interface was created and configured, but the original loop0 wasn't.

Is this a BUG of ligato or my YAML configuration is wrong? How can I configure a existed loopback interface rather than create a new one?