On Wed, Jan 17, 2018 at 09:17:07PM -0200, Flavio Leitner wrote:
> On Wed, Jan 17, 2018 at 04:35:01PM +0000, Vishal Deep Ajmera wrote:
> > > What happens if you have two or more bonds or if we fix dpdk port too,
> > > what happens when you have more than one?
> > > I think you will see errors/failures.
> >
> > I tried with two dpdk ports and I do see following print on console though
> > it seem harmless and does not impact route table. Also, this happens only
> > when bridge mac was unchanged by addition of new DPDK port.
> >
> > RTNETLINK answers: File exists
> > RTNETLINK answers: File exists
> > RTNETLINK answers: File exists
>
> OK, what about this patch instead? It should fix the issue without the
> errors. I have not tested.
BTW, I suggested earlier but maybe I wasn't clear.
Instead of adding networking configuration to the bridge's port, just
leave it alone with a name that doesn't bother you.
Then create an internal port with the name and the networking
configuration you need. It won't change its MAC and neither lose
the routes. They both will be tap devices anyways.
fbl
>
> diff --git a/rhel/etc_sysconfig_network-scripts_ifup-ovs
> b/rhel/etc_sysconfig_network-scripts_ifup-ovs
> index b95220a7f..b455e356e 100755
> --- a/rhel/etc_sysconfig_network-scripts_ifup-ovs
> +++ b/rhel/etc_sysconfig_network-scripts_ifup-ovs
> @@ -167,10 +167,17 @@ case "$TYPE" in
> ;;
> OVSDPDKPort)
> ifup_ovs_bridge
> + BRIDGE_MAC_ORIG=$(get_hwaddr $OVS_BRIDGE)
> ovs-vsctl -t ${TIMEOUT} \
> -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
> -- add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS \
> -- set Interface "$DEVICE" type=dpdk ${OVS_EXTRA+--
> $OVS_EXTRA}
> + BRIDGE_MAC=$(get_hwaddr $OVS_BRIDGE)
> + # The bridge will change its MAC to be the lower one among all
> its
> + # ports. Restore the configuration if that happens.
> + if [ "$BRIDGE_MAC_ORIG" != "$BRIDGE_MAC" ]; then
> + OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
> + fi
> ;;
> OVSDPDKRPort)
> ifup_ovs_bridge
> @@ -196,12 +203,19 @@ case "$TYPE" in
> ;;
> OVSDPDKBond)
> ifup_ovs_bridge
> + BRIDGE_MAC_ORIG=$(get_hwaddr $OVS_BRIDGE)
> for _iface in $BOND_IFACES; do
> IFACE_TYPES="${IFACE_TYPES} -- set interface ${_iface}
> type=dpdk"
> done
> ovs-vsctl -t ${TIMEOUT} \
> -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE" \
> -- add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES}
> $OVS_OPTIONS ${IFACE_TYPES} ${OVS_EXTRA+-- $OVS_EXTRA}
> + BRIDGE_MAC=$(get_hwaddr $OVS_BRIDGE)
> + # The bridge will change its MAC to be the lower one among all
> its
> + # ports. Restore the configuration if that happens.
> + if [ "$BRIDGE_MAC_ORIG" != "$BRIDGE_MAC" ]; then
> + OVSINTF=${DEVICE} /sbin/ifup "$OVS_BRIDGE"
> + fi
> ;;
> *)
> echo $"Invalid OVS interface type $TYPE"
>
> --
> Flavio
--
Flavio
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss