diff --git a/ncm-network/src/main/perl/network.pm b/ncm-network/src/main/perl/network.pm index 51706023a4..a2ad136ef4 100755 --- a/ncm-network/src/main/perl/network.pm +++ b/ncm-network/src/main/perl/network.pm @@ -800,7 +800,12 @@ sub process_network $la->{options} ||= {}; $la = $la->{options}; } - $la->{$opt} = $opts->{$opt}; + # nmstate config requires arp_ip_target as comma seperated string + if ($opt eq 'arp_ip_target') { + $la->{$opt} = join(',', @{$opts->{$opt}}); + } else { + $la->{$opt} = $opts->{$opt}; + } } } # TODO for briging_opts diff --git a/ncm-network/src/main/perl/nmstate.pm b/ncm-network/src/main/perl/nmstate.pm index 029877b509..46e93c53c1 100644 --- a/ncm-network/src/main/perl/nmstate.pm +++ b/ncm-network/src/main/perl/nmstate.pm @@ -163,12 +163,12 @@ sub make_nm_ip_route # - port in nmstate config file sub get_bonded_eth { - my ($self, $interfaces) = @_; + my ($self, $bond_name, $interfaces) = @_; my @data = (); foreach my $name (sort keys %$interfaces) { my $iface = $interfaces->{$name}; if ( $iface->{master} ){ - push @data, $name; + push @data, $name if $iface->{master} eq $bond_name; } } return \@data; @@ -279,7 +279,6 @@ sub generate_nmstate_config { my ($self, $name, $net, $ipv6, $routing_table) = @_; - my $bonded_eth = get_bonded_eth($self, $net->{interfaces}); my $iface = $net->{interfaces}->{$name}; my $device = $iface->{device} || $name; my $is_eth = $iface->{set_hwaddr}; @@ -313,6 +312,7 @@ sub generate_nmstate_config # if bond device $ifaceconfig->{type} = "bond"; $ifaceconfig->{'link-aggregation'} = $iface->{link_aggregation}; + my $bonded_eth = get_bonded_eth($self, $name, $net->{interfaces}); if ($bonded_eth){ $ifaceconfig->{'link-aggregation'}->{port} = $bonded_eth; }