Bug 213408 - /etc/rc.d/netif restart not correctly work
Summary: /etc/rc.d/netif restart not correctly work
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: conf (show other bugs)
Version: 10.1-RELEASE
Hardware: amd64 Any
: --- Affects Many People
Assignee: Hiroki Sato
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-12 07:16 UTC by Andrii Hromov
Modified: 2016-10-12 14:03 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrii Hromov 2016-10-12 07:16:54 UTC
This script does not correctly overloaded interfaces. When stopping, first dismantle basic user interface of the network then vlans, and at the start of the first vlan then parent interfaces. Here is my solution: 

in the script I made changes to these blocks, and now everything is working properly

...
network_start()
{
        local _if

        # Set the list of interfaces to work on.
        #
        cmdifn=$*

        if [ -z "$cmdifn" ]; then
                #
                # We're operating as a general network start routine.
                #

                # disable SIGINT (Ctrl-c) when running at startup
                trap : 2

                # Create Fast EtherChannel interfaces
                fec_up
        fi

        # Rename interfaces.
        ifnet_rename $cmdifn

        # Configure the interface(s).
        network_common ifn_start $cmdifn

        # Create cloned interfaces
        clone_up $cmdifn

        if [ -f /etc/rc.d/ipfilter ] ; then
                # Resync ipfilter
                /etc/rc.d/ipfilter quietresync
        fi
        if [ -f /etc/rc.d/bridge -a -n "$cmdifn" ] ; then
                /etc/rc.d/bridge start $cmdifn
        fi
        if [ -f /etc/rc.d/routing -a -n "$cmdifn" ] ; then
                for _if in $cmdifn; do
                        /etc/rc.d/routing start any $_if
                done
        fi
}
...



...
network_stop0()
{
        local _if

        # Set the list of interfaces to work on.
        #
        cmdifn=$*

        # Destroy cloned interfaces
        if [ -n "$_clone_down" ]; then
                clone_down $cmdifn
        fi

        # Deconfigure the interface(s)
        network_common ifn_stop $cmdifn

        if [ -f /etc/rc.d/routing -a -n "$cmdifn" ] ; then
                for _if in $cmdifn; do
                        /etc/rc.d/routing stop any $_if
                done
        fi
}
...