description => "Unicast peers address ip list.",
type => 'string', format => 'ip-list'
},
- 'vrf' => {
- description => "vrf name.",
- type => 'string', #fixme: format
- },
- 'vrf-vxlan' => {
- type => 'integer',
- description => "l3vni.",
- },
- 'controller' => {
- type => 'string',
- description => "Frr router name",
- },
};
}
'multicast-address' => { optional => 1 },
'unicast-address' => { optional => 1 },
'vxlan-allowed' => { optional => 1 },
- 'vrf' => { optional => 1 },
- 'vrf-vxlan' => { optional => 1 },
- 'controller' => { optional => 1 },
};
}
my $uplink = $plugin_config->{'uplink-id'};
my $vxlanallowed = $plugin_config->{'vxlan-allowed'};
- my $vrf = $plugin_config->{'vrf'};
- my $vrfvxlan = $plugin_config->{'vrf-vxlan'};
die "missing vxlan tag" if !$tag;
my $iface = "uplink$uplink";
next if $address eq $ifaceip;
push @iface_config, "vxlan_remoteip $address";
}
- } else {
- push @iface_config, "vxlan-local-tunnelip $ifaceip" if $ifaceip;
- push @iface_config, "bridge-learning off";
- push @iface_config, "bridge-arp-nd-suppress on";
}
push @iface_config, "mtu $mtu" if $mtu;
push @iface_config, "bridge_fd 0";
push @iface_config, "mtu $mtu" if $mtu;
push @iface_config, "alias $alias" if $alias;
- push @iface_config, "ip-forward on" if $ipv4;
- push @iface_config, "ip6-forward on" if $ipv6;
- push @iface_config, "arp-accept on" if $ipv4||$ipv6;
- push @iface_config, "vrf $vrf" if $vrf;
push(@{$config->{$vnetid}}, @iface_config) if !$config->{$vnetid};
- if ($vrf) {
- #vrf intreface
- @iface_config = ();
- push @iface_config, "vrf-table auto";
- push(@{$config->{$vrf}}, @iface_config) if !$config->{$vrf};
-
- if ($vrfvxlan) {
- #l3vni vxlan interface
- my $iface_vxlan = "vxlan$vrf";
- @iface_config = ();
- push @iface_config, "vxlan-id $vrfvxlan";
- push @iface_config, "vxlan-local-tunnelip $ifaceip" if $ifaceip;
- push @iface_config, "bridge-learning off";
- push @iface_config, "bridge-arp-nd-suppress on";
- push @iface_config, "mtu $mtu" if $mtu;
- push(@{$config->{$iface_vxlan}}, @iface_config) if !$config->{$iface_vxlan};
-
- #l3vni bridge
- my $brvrf = "br$vrf";
- @iface_config = ();
- push @iface_config, "bridge-ports $iface_vxlan";
- push @iface_config, "bridge_stp off";
- push @iface_config, "bridge_fd 0";
- push @iface_config, "mtu $mtu" if $mtu;
- push @iface_config, "vrf $vrf";
- push(@{$config->{$brvrf}}, @iface_config) if !$config->{$brvrf};
- }
- }
-
return $config;
}