+func (iface *NetworkInterfaceVeth) Configure() error {
+ err := AddVethPair(iface.name, iface.peerName)
+ if err != nil {
+ return err
+ }
+
+ if iface.networkNamespace != "" {
+ err := LinkSetNetns(iface.name, iface.networkNamespace)
+ if err != nil {
+ return err
+ }
+ }
+
+ if iface.peerNetworkNamespace != "" {
+ err := LinkSetNetns(iface.peerName, iface.peerNetworkNamespace)
+ if err != nil {
+ return err
+ }
+ }
+
+ if iface.ip4Address != "" {
+ err = AddAddress(
+ iface.Name(),
+ iface.ip4Address,
+ iface.networkNamespace,
+ )
+ }
+
+ if iface.peerIp4Address != "" {
+ err = AddAddress(
+ iface.peerName,
+ iface.peerIp4Address,
+ iface.peerNetworkNamespace,
+ )
+ if err != nil {
+ return fmt.Errorf("failed to add configure address for %s: %v", iface.peerName, err)
+ }
+ }
+ return nil
+}
+