Page MenuHomeVyOS Platform

Replacing Vyatta::Interface perl
Closed, ResolvedPublicFEATURE REQUEST

Description

As T1756 evolved, I basically ended up starting a rewrite of the old perl Vyatta::Interface module to make it a bit easier to work with in Python.

The attached pull request is the result of that work. Right now, only wireguard is supported, but as the scaffolding is now built, I think adding the rest of the interface types should go quickly

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Internal change (not visible to end users)

Related Objects

Event Timeline

Example output. Note this is all programmatically generated in Python now instead of parsing the output of wg

interface: wg0
  description: KROY
  public key: RIbtUTCfgzNjnLNPQ/ulkGnnB2vMWHm7l2H/xUfbyjc=
  private key: (hidden)
  listening port: 2224

  peer: ERX-Test
    public key: CF1CsALd2x8KuN6uIMTAYs0ZMtc0rRMEqw4rU2qY5Co=
    allowed ips: 10.172.24.60/32, 2001:XXX:xxx:XXX::60/128
    persistent keepalive: every 15 seconds

  peer: MBP-kroy
    public key: HBbvhFP8+uR8KaS+O3mp1MQJn1bFKYpyPOHDILL8SHE=
    allowed ips: 10.172.24.40/32, 2001:XXX:xxx:XXX::40/128
    persistent keepalive: every 15 seconds

  peer: iMac-kroy
    public key: F5MbW7ye7DsoxdOacrdhLPQIksjxN5UdNV+pGFHqehc=
    latest handshake: 0:01:24
    status: active
    endpoint: xx.xx.xx.xx:53770
    allowed ips: 10.172.24.30/32, 2001:XXX:xxx:XXX::30/128
    transfer: 434 MB received, 5 GB sent
    persistent keepalive: every 15 seconds

  peer: iPhone-kroy
    public key: BknHcLFo8nOo8Dwq2CjaC/TedchKQ0ebxC7GYn7Al00=
    allowed ips: 10.172.24.20/32, 2001:XXX:xxx:XXX::20/128
    persistent keepalive: every 15 seconds

  RX:
      bytes    packets    errors    dropped    overrun    mcast
  455449452    3481153         0       5663          0        0

  TX:
       bytes    packets    errors    dropped    carrier    collisions
  5812316456    5555760         0       4408          0             0
hagbard added a subscriber: hagbard.

looks neat. I merged in in already. Can you add some explanation to https://github.com/vyos/vyos-documentation please.

PR153

This pull request rewrites all the functionality of ioctl.pm and lays the framework for the rest of Interface.pm

Example usage:

#!/usr/bin/env python3
from vyos.interface import Interface

intf = Interface("eth0.7")
print(intf.up())

Why not single source also the op-mode part into ifconfig.py?

PR155

This eliminates the redundant interfaces.py and merges the op_mode displaying code into ifconfig.py

Once the other interface types have their op_mode display code moved here, there will be a bit of refactoring needed to display the various types of interfaces differently.

erkin set Issue type to Internal change (not visible to end users).Aug 31 2021, 6:28 PM
dmbaturin added a subscriber: dmbaturin.

The new interface handling infrastructure is firmly in place now.