Hi Anders Widell,

I checked it , you are right.  In case of kernel has TIPC built-in 
module , once TIPC has joined a network with a network id & address
it cannot change node address once assigned, until node reboots.

We can not perform duplicate address detection, i will re-publish the 
patch along with 00-README.conf update.

-AVM


On 9/6/2016 9:43 AM, A V Mahesh wrote:
> Hi Anders Widell,
>
> Thanks for the review ,  I will incorporate your comments and will 
> re-publish the patch V1.
> Please find my answers below tagged with [AVM].
>
> On 9/2/2016 5:10 PM, Anders Widell wrote:
>> Hi!
>>
>> Comments / questions:
>>
>> 1) When I run "make shellcheck" I get the following warnings on the 
>> modified code. These warnings should be fixed.
>>
>> In configure_tipc.in line 269:
>>         if [ "$configured_tipc_addr" == "0.0.0" ]; then
>>                                      ^-- SC2039: In POSIX sh, == in 
>> place of = is undefined.
>>
>>
>> In configure_tipc.in line 280:
>>         configured_net_id=`tipc-config -netid | cut -d: -f2`
>>                           ^-- SC2006: Use $(..) instead of legacy `..`.
>>
>>
>> In configure_tipc.in line 282:
>>         if [ $configured_net_id != $opensaf_net_id ]; then
>>              ^-- SC2086: Double quote to prevent globbing and word 
>> splitting.
>>                                    ^-- SC2086: Double quote to 
>> prevent globbing and word splitting.
>>
>> 2) The line "               tipc_duplicate_node_detect" has a 
>> three-space indentation. It should be four spaces.
>>
>> 3) The line "configured_net_id=`tipc-config -netid | cut -d: -f2`" 
>> calls the tipc-config tool directly, whereas other parts of this 
>> script call it using the ${tipc_config} variable. You should also 
>> call it using the variable.
> [AVM] I will incorporate the "make shellcheck" warnings .
>>
>> 4) In the case where TIPC is build into the kernel, you are calling 
>> the functions tipc_duplicate_node_detect and tipc_configure. Both of 
>> these functions try to insert and/or remove the TIPC kernel module. I 
>> suppose this will fail, right? What is the exit code from modprobe 
>> and insmod when the kernel has TIPC built-in (and maybe the kernel 
>> doesn't even support loadable modules)? tipc_configure will exit the 
>> script if the exit code from modprobe/insmod is non-zero. I suppose 
>> duplicate address detection shouldn't be done at all when TIPC is 
>> built-in. Maybe we need to extract the TIPC module insertion from the 
>> tipc_configure function, so that it is not done when TIPC is built-in?
>
> [AVM]    In case of TIPC node address not yet configured (tipc_addr = 
> "0.0.0" )  is equal to  where TIPC support loadable modules
>                so we required  to check duplicate address detection 
> even in case of  in case of kernel has TIPC built-in .
>
>                I missed to test 
> `DUPLICATE_NODE_DETECT=${TIPC_DUPLICATE_NODE_DETECT:-"YES"}` case , i 
> will re-test and
>                will publish the patch again.
> -AVM
>>
>> / Anders Widell
>>
>> On 09/02/2016 08:36 AM, [email protected] wrote:
>>> osaf/services/infrastructure/nid/scripts/configure_tipc.in |  38 
>>> ++++++++-----
>>>   1 files changed, 23 insertions(+), 15 deletions(-)
>>>
>>>
>>> Issue:
>>> In some OS like Montavista, TIPC is built in kernel module,
>>> the default  node address will be  <0.0.0>.
>>>
>>> Fix :
>>> This patch determines such OS which has TIPC is built in kernel module
>>> and configures the TIPC node address to OpenSAF requirements.
>>>
>>> Note: In OS like Montavista where TIPC is built in kernel module,
>>> once TIPC has joined a network with a network id & address
>>> it cannot change node address once assigned, until node reboots,
>>> in other words opensafd stop  will not Reset tipc link/link Lost.
>>> the only way to get Reset tipc link/link Lost is rebooting node.
>>>
>>> diff --git 
>>> a/osaf/services/infrastructure/nid/scripts/configure_tipc.in 
>>> b/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>>> --- a/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>>> +++ b/osaf/services/infrastructure/nid/scripts/configure_tipc.in
>>> @@ -266,22 +266,30 @@ else
>>>       configured_tipc_addr=`tipc-config -addr | tr -s '<>' % | cut 
>>> -d% -f2`
>>>       opensaf_tipc_addr=1.1.$TIPC_NODEID
>>>       if [ $configured_tipc_addr != $opensaf_tipc_addr ]; then
>>> -        logger -t opensaf -s "TIPC node address not configured to 
>>> OpenSAF requirements, exiting..."
>>> -        exit 1
>>> -    fi
>>> +        if [ "$configured_tipc_addr" == "0.0.0" ]; then
>>> +            logger -t opensaf -s "TIPC node address not yet 
>>> configured , Configuring..."
>>> +            if [ "$DUPLICATE_NODE_DETECT" = "YES" ]; then
>>> +               tipc_duplicate_node_detect
>>> +            fi
>>> +            tipc_configure
>>> +        else
>>> +            logger -t opensaf -s "TIPC node address not configured 
>>> to OpenSAF requirements, Exiting..."
>>> +            exit 1
>>> +        fi
>>> +    else
>>> +        configured_net_id=`tipc-config -netid | cut -d: -f2`
>>> +        opensaf_net_id=$TIPC_NETID
>>> +        if [ $configured_net_id != $opensaf_net_id ]; then
>>> +            logger -t opensaf -s "TIPC network ID not configured to 
>>> OpenSAF requirements, exiting..."
>>> +            exit 1
>>> +        fi
>>>   -    configured_net_id=`tipc-config -netid | cut -d: -f2`
>>> -    opensaf_net_id=$TIPC_NETID
>>> -    if [ $configured_net_id != $opensaf_net_id ]; then
>>> -        logger -t opensaf -s "TIPC network ID not configured to 
>>> OpenSAF requirements, exiting..."
>>> -        exit 1
>>> -    fi
>>> -
>>> -    configured_bearers=$(${tipc_config} -b | grep -v Bearer | cut 
>>> -d: -f2 | sort)
>>> -    opensaf_bearers=$(echo "$ETH_NAME" | tr "," "\n" | sort)
>>> -    if [ "$configured_bearers" != "$opensaf_bearers" ]; then
>>> -        logger -t opensaf -s "TIPC bearer not configured to OpenSAF 
>>> requirements, exiting..."
>>> -        exit 1
>>> +        configured_bearers=$(${tipc_config} -b | grep -v Bearer | 
>>> cut -d: -f2 | sort)
>>> +        opensaf_bearers=$(echo "$ETH_NAME" | tr "," "\n" | sort)
>>> +        if [ "$configured_bearers" != "$opensaf_bearers" ]; then
>>> +            logger -t opensaf -s "TIPC bearer not configured to 
>>> OpenSAF requirements, exiting..."
>>> +            exit 1
>>> +        fi
>>>       fi
>>>   fi
>>
>


------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to