Yes this fix needs support from the upgrade flag tracked by ticket #842. http://sourceforge.net/p/opensaf/tickets/842/
I will accept and work on that ticket now. /AndersBj Hans Feldt wrote: > Ok it works with changeset: 5189:2211a1cd00d but not with > 5193:a23b1c8d0e6c that implements ticket #798. > > Seems like the #798 change has changed the ImmCcbState in a non > backwards compatible way. > In 4.4: > IMM_CCB_COMMITTED = 9, //Committed at nodes pending implementer apply > calls > and default: > IMM_CCB_COMMITTED = 11, //Committed at nodes pending implementer apply > calls > > so I will test a bit more with 5189:2211a1cd00d > /Hans > > > On 16 May 2014 12:03, Hans Feldt <osafde...@gmail.com> wrote: > >> I am getting an IMM sync problem when testing with different >> controller versions. When second controller is part of IMM loading it >> works, when it syncs it does not work: >> >> May 16 12:01:01 SC-2 local0.notice osafimmnd[427]: Started >> May 16 12:01:01 SC-2 local0.notice osafimmnd[427]: NO SERVER STATE: >> IMM_SERVER_ANONYMOUS --> IMM_SERVER_CLUSTER_WAITING >> May 16 12:01:01 SC-2 local0.notice osafimmnd[427]: NO SERVER STATE: >> IMM_SERVER_CLUSTER_WAITING --> IMM_SERVER_LOADING_PENDING >> May 16 12:01:01 SC-2 local0.notice osafimmnd[427]: NO SERVER STATE: >> IMM_SERVER_LOADING_PENDING --> IMM_SERVER_SYNC_PENDING >> May 16 12:01:01 SC-2 local0.notice osafimmnd[427]: NO NODE STATE-> >> IMM_NODE_ISOLATED >> May 16 12:01:02 SC-2 local0.notice osafimmd[389]: NO SBY: Ruling epoch >> noted as:4 >> May 16 12:01:02 SC-2 local0.notice osafimmd[389]: NO IMMND coord at 2010f >> May 16 12:01:02 SC-2 local0.notice osafimmnd[427]: NO NODE STATE-> >> IMM_NODE_W_AVAILABLE >> May 16 12:01:02 SC-2 local0.notice osafimmnd[427]: NO SERVER STATE: >> IMM_SERVER_SYNC_PENDING --> IMM_SERVER_SYNC_CLIENT >> May 16 12:01:03 SC-2 local0.notice osafimmd[389]: NO SBY: New Epoch >> for IMMND process at node 2010f old epoch: 3 new epoch:4 >> May 16 12:01:03 SC-2 local0.notice osafimmd[389]: NO IMMND coord at 2010f >> May 16 12:01:03 SC-2 local0.err osafimmnd[427]: ER Can not sync Ccb >> that is active >> May 16 12:01:03 SC-2 local0.err opensafd[337]: ER Could Not RESPAWN IMMND >> >> and trace: >> >> May 16 12:01:20.395920 osafimmnd [455:ImmModel.cc:15360] >> finalizeSync >> May 16 12:01:20.396115 osafimmnd [455:ImmModel.cc:15643] IN >> finalizeSync message contains 0 admin-owners >> May 16 12:01:20.396218 osafimmnd [455:ImmModel.cc:15748] T5 Immnd sync >> client synced implementer id:6 name:>>safSmfService<< size:13 >> May 16 12:01:20.396522 osafimmnd [455:ImmModel.cc:15748] T5 Immnd sync >> client synced implementer id:5 name:>>safCheckPointService<< size:20 >> May 16 12:01:20.396615 osafimmnd [455:ImmModel.cc:15748] T5 Immnd sync >> client synced implementer id:0 name:>>@safAmfService2020f<< size:19 >> May 16 12:01:20.396706 osafimmnd [455:ImmModel.cc:15748] T5 Immnd sync >> client synced implementer id:3 name:>>safAmfService<< size:13 >> May 16 12:01:20.396798 osafimmnd [455:ImmModel.cc:15748] T5 Immnd sync >> client synced implementer id:2 name:>>safClmService<< size:13 >> May 16 12:01:20.396887 osafimmnd [455:ImmModel.cc:15748] T5 Immnd sync >> client synced implementer id:1 name:>>safLogService<< size:13 >> May 16 12:01:20.397029 osafimmnd [455:ImmModel.cc:15752] IN >> finalizeSync message contains 6 implementers >> May 16 12:01:20.397293 osafimmnd [455:ImmModel.cc:15828] IN Synced 58 classes >> May 16 12:01:20.397404 osafimmnd [455:ImmModel.cc:15859] T5 CCB 1 state OTHER >> May 16 12:01:20.397838 osafimmnd [455:ImmModel.cc:15861] ER Can not >> sync Ccb that is active >> May 16 12:01:20.397938 osafimmnd [455:ImmModel.cc:16173] << finalizeSync >> May 16 12:01:20.406856 osafimmnd [455:immnd_evt.c:8607] ER Unexpected >> local error 21 in finalizeSync for sync client - aborting >> >> On 16 May 2014 10:20, A V Mahesh <mahesh.va...@oracle.com> wrote: >> >>> Hi, >>> >>> >> So is this an ack for the complete series? >>> Yes. >>> >>> -AVM >>> >>> On 5/16/2014 12:51 PM, Hans Feldt wrote: >>> >>>> Hi, >>>> >>>> This is a series of 4 patches. It is all or nothing. I sent out v2 for >>>> patch 1 after Surya’s comments. >>>> >>>> So is this an ack for the complete series? >>>> >>>> Thanks, >>>> >>>> Hans >>>> >>>> *From:*A V Mahesh [mailto:mahesh.va...@oracle.com] >>>> *Sent:* den 16 maj 2014 03:51 >>>> *To:* Hans Feldt; Hans Feldt >>>> *Cc:* opensaf-devel@lists.sourceforge.net; Suryanarayana Garlapati >>>> *Subject:* Re: [devel] [PATCH 3 of 4] mds: use TIPC >>>> segmentation/reassembly [#654] >>>> *Importance:* High >>>> >>>> Hi Hans , >>>> >>>> *ACK from me for your published patch , please go-ahead and push the >>>> patch as it is.* >>>> >>>> I discussion/syncdup with Surya, following are the summary points : >>>> >>>> By *default *MDS does FULL encode/decode between different nodes >>>> (inter-node communication), also the behavior is same when the MDS >>>> messaging happens between 32-bit and 64-bit processes. your published >>>> Patch: #654 is not impacting any of these default functionality**. >>>> >>>> Even though MDS is providing a compile time flag called "mds_arch", >>>> when this flag is set explicitly to the same value on different nodes, >>>> then only MDS messaging across nodes will happen with FLAT >>>> encode/decode routines, but most of the OpenSAF services (mds >>>> application) are still doing FULL encode/decode even when the MDS is >>>> triggered FLAT encode/decode callbacks ( Middle ware applications are >>>> not using advantage of "mds_arch" ). >>>> >>>> Till now none of the OpenSAF user are using the 'mds_arch' field and >>>> all are going with the MDS default settings. So they are NO impacts >>>> of deprecating "mds_arch" and considering that for versions. >>>> >>>> -AVM >>>> >>>> On 5/7/2014 12:20 PM, SuryaNarayana Garlapati wrote: >>>> >>>> OK, >>>> Here goes the solution. >>>> There is a 8 bit field in each message that is being exchanged >>>> between the services (which contains the message priority, mds >>>> prot_ver(mds protocol and mds version)) when message send is >>>> attempted. 6 bits are allocated for the mds prot_ver, present >>>> value for this field is 0xA8. This field can be used for >>>> versioning(and intended for this type of changes in MDS). This >>>> version can be dynamically learnt for a destination, when the >>>> first message is received from that destination and is stored in >>>> the Subscription result table. MDS prot_ver value will be changed >>>> in this release. So we can identify the old and new ones. If the >>>> destination is an old one, we will send with the old logic and if >>>> its a new one we will send with the bigger message. >>>> >>>> There is other solution, but this includes quite code changes. For >>>> example, In each node bind a new type say X and in each process >>>> subscribe for this X. When we get up this means, it indicates a >>>> new node and messaging is with bigger size else the normal one. >>>> Only a single extra bind is done for a node. >>>> >>>> There is one more solution, but it breaks the inservice >>>> upgradabilty, where in which the vdest id range is decreased. >>>> >>>> >>>> Regards >>>> Surya >>>> >>>> On Wednesday 07 May 2014 08:44 AM, A V Mahesh wrote: >>>> >>>> Surya, >>>> >>>> Thank for reiterating arch_word of the MDS feature ,we all in sync. >>>> >>>> On 5/6/2014 3:55 PM, SuryaNarayana Garlapati wrote: >>>> >>>> MDS version unless we get alternate bits/variables used for >>>> MDS version. >>>> >>>> [Surya] Thats the reason i am asking for some time. >>>> >>>> >>>> [AVM] If we get some alternate bits/variables used for MDS version >>>> this will the best Option >>>> and we can retain arch_word MDS feature. >>>> >>>> >>>> On 5/6/2014 3:55 PM, SuryaNarayana Garlapati wrote: >>>> >>>> >>>> 6) This current patch Honors the default Opensaf >>>> configuration ` mds_arch=0` behavior ( point 1 & 2 ) and it >>>> removed >>>> hidden `same arc message optimization` feature related >>>> code and used those 3bits/variable for the purpose of MDS >>>> version. >>>> >>>> [Surya] Current patch has still problems. I am repeating the same, >>>> but for your convenience, they are listed below. >>>> 1. Its taking out MDS optimization feature for the performance >>>> enhancement of the messaging. >>>> >>>> >>>> [AVM] we all in sync on this , now we are at the point whether we >>>> should expose this or not to OpenSAF users? >>>> >>>> >>>> 2. 64 bit and 32 bit combination will not work on the local node >>>> as it is doing flat encode which is wrong. >>>> >>>> >>>> [AVM] The current patch do ENC_TYPE_FULL for mixed 32/64 bit >>>> clients on the same Node. >>>> >>>> -AVM >>>> >>>> >>>> On 5/6/2014 3:55 PM, SuryaNarayana Garlapati wrote: >>>> >>>> Before going ahead, Following is the explanation for the arch_word >>>> of the MDS. >>>> >>>> Arch word(4bits) is combination of architecture and bit size of >>>> the machine. 3 bits are allocated >>>> for architecture and 1 bit is allocated for bit size. >>>> architecture of value 0 means unspecified. >>>> >>>> Message encoding is done as follows: >>>> 1. If the source and destination of the message is same process, >>>> then copy callback is called. >>>> 2. If source and destination arch_word are same, >>>> then encode flat is called. >>>> >>>> But there are some exceptions here, >>>> >>>> Say there are two nodes, A(Intel) and B(Powerpc) communicating >>>> with each other and are 64 bit each and >>>> opensaf code was compiled without giving any mds_arch input. In >>>> this case mds_arch is set to default 0. >>>> So as per the rule, encode flat callback should be called. But in >>>> this case if the flat encode is called, then >>>> the communication between A and B will not work as one is little >>>> endian and other is big endian. >>>> For handling this type of situations where the mds_arch is >>>> unspecified, mds checks for the mds_arch >>>> and if it is set to 0, MDS will call the encode full such that the >>>> communication will work between the nodes >>>> as the message is fully encoded. >>>> >>>> Encode flat will also be called if the source and destination are >>>> on the same node and arch_word is same. >>>> >>>> 3. If source and destination arch_word are different, then encode >>>> full is called. In this case the source and destination >>>> can be on the same or different node. >>>> >>>> On Tuesday 06 May 2014 09:05 AM, A V Mahesh wrote: >>>> >>>> Hi All, >>>> >>>> I re-verified the behavior of OpenSAF >>>> MDS_ENC_TYPE_FULL/MDS_ENC_TYPE_FLAT messaging >>>> and its optimization , following is my observation and option: >>>> >>>> 1) In the default OpenSAF configuration (` mds_arch=0` ) , >>>> messaging across the node is ENC_TYPE_FULL and >>>> messaging with-in the node is ENC_TYPE_FLAT . >>>> >>>> [Surya] See the explanation in point 2 and point 3. >>>> >>>> >>>> 2) Even though Opensaf is configured with default `mds_arch=0`, >>>> if their is difference of 32--bit application communicating to >>>> 64-bit middle-ware >>>> ( mixed 32/64 bit clients on the same Node), messaging >>>> with-in the node is also ENC_TYPE_FULL. >>>> >>>> [Surya] See the explanation in point 3. >>>> >>>> >>>> 3) when OpenSAF is configured with `mds_arch=1... to 7` >>>> messaging across & with-in the node is ENC_TYPE_FLAT , >>>> hear we have advantage of message optimization , only when >>>> explicitly enabling this configuration . >>>> >>>> [Surya] See the exception explanation in point 2. MDS was always >>>> designed to have this optimization a long time. It was just the >>>> build system was not using it. >>>> >>>> >>>> 4) Unfortunate the same arc message optimization feature got >>>> broken in few services such as RDE & PLM >>>> doesn't support ENC_TYPE_FLAT , we need fix these issue along >>>> with in-service upgrade to make it work properly . >>>> >>>> [Surya] Optimization feature is triggered by MDS. RDE & PLM are >>>> missing the implementation for this callbacks. >>>> >>>> >>>> 5) One more important note is that the `same arc message >>>> optimization` feature was not exposed to OpenSAF user till now. >>>> >>>> [Surya] It was always present in the confiure. Its just that, it >>>> was not used any time and default option was choosed for the >>>> mds_arch. >>>> >>>> >>>> 6) This current patch Honors the default Opensaf configuration >>>> ` mds_arch=0` behavior ( point 1 & 2 ) and it removed >>>> hidden `same arc message optimization` feature related >>>> code and used those 3bits/variable for the purpose of MDS version. >>>> >>>> [Surya] Current patch has still problems. I am repeating the same, >>>> but for your convenience, they are listed below. >>>> 1. Its taking out MDS optimization feature for the performance >>>> enhancement of the messaging. >>>> 2. 64 bit and 32 bit combination will not work on the local node >>>> as it is doing flat encode which is wrong. >>>> >>>> >>>> >>>> So I agree with Hans and let us not regressed for Un exposed >>>> feature , >>>> >>>> [Surya] Feature is present, the only thing is it was not used. >>>> >>>> and we will use the ARCHTYPE 3 bits for >>>> MDS version unless we get alternate bits/variables used for MDS >>>> version. >>>> >>>> [Surya] Thats the reason i am asking for some time. >>>> >>>> I also NOT much in favor of little bit expensive >>>> `new Node install & subscribe its Mds version` (My previously >>>> published approach) >>>> >>>> So following are current options : >>>> >>>> - Use ARCHTYPE 3 bits for MDS version and discard un exposed >>>> feature ( `mds_arch` config option) >>>> >>>> - Find out alter native bits for MDS version fix all the >>>> ENC_TYPE_FLAT issue with in-service upgrade >>>> and expose `same arc message optimization` feature to OpenSAF >>>> users. >>>> >>>> - Use `new Node install & subscribe` option for Mds version (My >>>> previously published approach) and fix >>>> all the ENC_TYPE_FLAT issue with in-service upgrade and >>>> expose `same arc message optimization` >>>> feature to OpenSAF users. >>>> >>>> >>>> -AVM >>>> >>>> On 5/1/2014 2:45 PM, SuryaNarayana Garlapati wrote: >>>> >>>> >>>> On Thursday 01 May 2014 02:30 PM, Hans Feldt wrote: >>>> >>>> Let's be clear that MDS a pure internal opensaf service since >>>> quite a long time. There are no "applications" to consider at all. >>>> This means the only thing to care about is in-service performance >>>> and making sure characteristics are improved, not regressed. >>>> >>>> [Surya] I am saying in the context of internal messaging between >>>> the services which use MDS. Yes, thats what even i am trying to. >>>> >>>> >>>> I am not sure we have to maintain some legacy requirement of mixed >>>> 32/64 bit clients on the same system. I don't see why we should. >>>> >>>> [Surya] This is not limited to even 32/64 bit. Its how the >>>> encoding is handled for the destinations. >>>> >>>> >>>> Thanks, >>>> Hans >>>> >>>> >>>> -----Original Message----- >>>> From: SuryaNarayana Garlapati >>>> [mailto:suryanarayana.garlap...@oracle.com] >>>> Sent: den 1 maj 2014 10:54 >>>> To: A V Mahesh >>>> Cc: opensaf-devel@lists.sourceforge.net >>>> <mailto:opensaf-devel@lists.sourceforge.net> >>>> Subject: Re: [devel] [PATCH 3 of 4] mds: use TIPC >>>> segmentation/reassembly [#654] >>>> >>>> >>>> On Thursday 01 May 2014 01:04 PM, A V Mahesh wrote: >>>> >>>> On 5/1/2014 10:16 AM, SuryaNarayana Garlapati wrote: >>>> >>>> The archtype is not a legacy one, it was introduced to have the >>>> optimization for the message encoding by the applications. >>>> >>>> Passing compile flags `mds_arch=1` `mds_arch=2` (mds_arch, [The >>>> arch-type input to MDS - valid values 1-7]) , is not a standard >>>> Open-Source ( enterprise things for legacy product ) option for >>>> compilations. >>>> >>>> [Surya] Wrong, if you see any standard linux configure options for >>>> any >>>> linux application code distributions, they do provide the options for >>>> supporting the options to provide such powerpc, intel, 32/64bit >>>> etc. So >>>> similar is the configure options for opensaf as well. For example you >>>> can see the configure options for the net-snmp as well. >>>> >>>> Open source user not need to Understand/get-Educate about this >>>> internal options , >>>> >>>> [Surya] This is not a internal option, configure option which is >>>> exposed >>>> to user as well. >>>> >>>> we are ok loose advantage of flat encode optimization , >>>> from now we want to send full_encode to different node. >>>> >>>> [Surya] This is not only done for optimization, this internally >>>> effects >>>> the message performance between the opensaf services which do huge >>>> messaging. >>>> I am on way of thinking the solution for this. Lets wait. >>>> >>>> >>>> We are also raising enhancement ticket for code clean. >>>> >>>> -AVM >>>> >>>> >>>> On 5/1/2014 10:16 AM, SuryaNarayana Garlapati wrote: >>>> >>>> On Thursday 01 May 2014 09:56 AM, A V Mahesh wrote: >>>> >>>> Hi Surya, >>>> >>>> On 5/1/2014 7:28 AM, Suryanarayana Garlapati wrote: >>>> >>>> Nack. >>>> MDS ARCHWORD is used for deciding the factor whether the message >>>> which is being sent to the destination should be encoded >>>> full/flat/copied. This >>>> bits were introduced to do a optimization in the way the callbacks >>>> encode full/flat are called. For example, if there are two >>>> processes(can be present in the same node or different node) and >>>> there architecture and bit size is same, so in this case, the >>>> encode flat can be called (or simply a flat copy of the message can >>>> be done in the UB). If these bits were not used, earlier the >>>> messages was being full encoded when the messages were sent to >>>> another node. At the same time, the arch field is given in the >>>> configure such that this can be used for different architectures >>>> such as the powerpc, etc. >>>> >>>> [AVM] >>>> “ARCHTYPE” is getting only used while cross-compiling, and to >>>> distinguish architecture flavors: x86, >>>> PowerPC, m68k ,ect . >>>> In the code "arch_word" is used while encoding whether to do >>>> MDS_ENC_TYPE_FLAT/MDS_ENC_TYPE_FULL. >>>> >>>> Keeping “ARCHTYPE” doesn't have any significance in current >>>> Open-sourced Opnesaf code , >>>> >>>> [Surya] This is provided to accommodate different architectures and >>>> is a build option which optimizes the applications way of message >>>> encoding(full/flat) and corresponding decode(full/flat). >>>> So that means, you want to remove this support and introduce the over >>>> head again. One more thing, with the new changes if you have two >>>> nodes one with powerpc and intel, both will not be able to >>>> communicate >>>> each other as both will result in flat encode/flat decode(as the >>>> value is one with the latest changes). >>>> >>>> why because In the current MDS messaging we do full encoded when >>>> the messages were sent to another process/node, irrelevant of >>>> “ARCHTYPE” >>>> >>>> [Surya] Wrong, the decision is done always on the archword only. >>>> >>>> I already verified cross 32/64 middle-ware & application >>>> combination , all the fowls are working fine . >>>> >>>> [Surya] As you said this might work, but you are loosing the >>>> optimization and would always result in full encode/full decode of >>>> application messages which is an overhead. >>>> >>>> I am thinking of a solution for this and will get back to you. >>>> >>>> [AVM] we already have an alternative option of new node do install >>>> & subscribe its Node Mds version, to handle in-service Upgrade , >>>> but we used legacy “ARCHTYPE” 3 bits for Mds version >>>> which is optimized solution then install & subscribe. >>>> >>>> [Surya] Thats what we had discussed before as well. The archtype is >>>> not a legacy one, it was introduced to have the optimization for the >>>> message encoding by the applications. >>>> >>>> -AVM >>>> >>>> >>>> Regards >>>> Surya >>>> >>>> >>>> ----- Original Message ----- >>>> From: osafde...@gmail.com <mailto:osafde...@gmail.com> >>>> To: mahesh.va...@oracle.com <mailto:mahesh.va...@oracle.com> >>>> Cc: opensaf-devel@lists.sourceforge.net >>>> <mailto:opensaf-devel@lists.sourceforge.net> >>>> Sent: Tuesday, April 29, 2014 10:58:53 AM GMT +05:30 Chennai, >>>> Kolkata, Mumbai, New Delhi >>>> Subject: [devel] [PATCH 3 of 4] mds: use TIPC >>>> segmentation/reassembly [#654] >>>> >>>> configure.ac | 21 --------------------- >>>> osaf/libs/core/mds/Makefile.am | 1 - >>>> osaf/libs/core/mds/include/mds_dt2c.h | 17 ++++++++--------- >>>> osaf/libs/core/mds/mds_c_sndrcv.c | 14 +++++--------- >>>> osaf/libs/core/mds/mds_dt_tipc.c | 11 ++++++++++- >>>> osaf/libs/core/mds/mds_log.c | 4 ++-- >>>> 6 files changed, 25 insertions(+), 43 deletions(-) >>>> >>>> >>>> TIPC supports sending message with a maximum length of 66000 bytes. >>>> MDS supports >>>> sending even bigger messages, upto ~46Mb. MDS has used an internal >>>> fragmentation >>>> of just 1400 bytes (MDTM_NORMAL_MSG_FRAG_SIZE) despite that the >>>> receive buffer >>>> is 8000 bytes (MDS_DIRECT_BUF_MAXSIZE) >>>> >>>> This patch changes MDS to use TIPC segmentation/reassembly. This >>>> gives benefits >>>> such as secure transmission (TIPC does retransmission). TIPC send >>>> congestion is >>>> reduced since TIPC counts messages not bytes. Less processing done >>>> in user >>>> space in the sending opensaf or client process. >>>> >>>> Since the receive buffer of older MDS cores is limited to 8000 >>>> bytes we have be >>>> sure not to send larger messages than that to older cores. >>>> Otherwise we have >>>> problems with in-service upgradeability. >>>> >>>> Each MDS TIPC port is bound to a functional address - a port name. >>>> The port name >>>> consists of 32 bit type and 32 bit instance. The 4 msb of the >>>> instance word >>>> contains the so called "archword" field. The msb indicates if this >>>> MDS core is >>>> 32 or 64 bit. The remaining 3 bits is now used as a version field. >>>> Version 0 is >>>> used by older versions of MDS, version 1 is now used to indicate >>>> the capability >>>> for longer fragmentation. >>>> >>>> This information is part of the published port name thus a >>>> subscriber will >>>> get them using the TIPC discovery service. These bits are ignored >>>> by old MDS >>>> cores, so it can receive messages from a new MDS core. When sending >>>> a message >>>> this bit is used to understand if the peer uses TIPC >>>> segmentation/reassembly >>>> (or not) and adapt the limit accordingly. >>>> >>>> The possibility to set mds_arch using configure has been removed. >>>> >>>> The change is in-service compliant and can be upgraded into a system. >>>> >>>> diff --git a/configure.ac b/configure.ac >>>> --- a/configure.ac >>>> +++ b/configure.ac >>>> @@ -470,27 +470,6 @@ if test "$enable_java" = no; then >>>> fi >>>> ############################################# >>>> -# MDS ARCH TYPE: MDS advises message encode/decode >>>> -# optimization to its clients if the sender and receiver >>>> -# are of "compatible-type". For this optimization to work, >>>> -# the sender's platform and receiver's platform should be >>>> -# similar (for e.g. both PowerPC) and use an libncs_core built >>>> -# with the same value for "mds_arch". An "mds_arch" value of 0 >>>> -# is the default value and stands for a platform which is NOT >>>> -# compatible with any platform. >>>> -############################################# >>>> - >>>> -AC_ARG_VAR([mds_arch], [The arch-type input to MDS - valid values >>>> 1-7]) >>>> - >>>> -if test "$mds_arch" = ""; then >>>> - mdsarchtype=0 >>>> -else >>>> - mdsarchtype=$mds_arch >>>> -fi >>>> - >>>> -AC_SUBST([MDS_WORD_ARCH_FLAGS], [" -DMDS_ARCH_TYPE=$mdsarchtype"]) >>>> - >>>> -############################################# >>>> # Checks for libraries. >>>> ############################################# >>>> PKG_CHECK_MODULES([XML2], [libxml-2.0]) >>>> diff --git a/osaf/libs/core/mds/Makefile.am >>>> b/osaf/libs/core/mds/Makefile.am >>>> --- a/osaf/libs/core/mds/Makefile.am >>>> +++ b/osaf/libs/core/mds/Makefile.am >>>> @@ -23,7 +23,6 @@ SUBDIRS = include >>>> noinst_LTLIBRARIES = libmds.la >>>> libmds_la_CPPFLAGS = \ >>>> - @MDS_WORD_ARCH_FLAGS@ \ >>>> $(AM_CPPFLAGS) >>>> libmds_la_LDFLAGS = -static >>>> diff --git a/osaf/libs/core/mds/include/mds_dt2c.h >>>> b/osaf/libs/core/mds/include/mds_dt2c.h >>>> --- a/osaf/libs/core/mds/include/mds_dt2c.h >>>> +++ b/osaf/libs/core/mds/include/mds_dt2c.h >>>> @@ -33,17 +33,16 @@ >>>> typedef uint8_t MDS_SVC_ARCHWORD_TYPE; /*MDS app-svc arch >>>> and word_size combination */ >>>> -/* MDS_WORD_SIZE_TYPE and MDS_ARCH_TYPE are compile-time >>>> macros */ >>>> - >>>> -#ifndef MDS_ARCH_TYPE >>>> -#define MDS_ARCH_TYPE 0 /* Stands for unspecified >>>> architecture type */ >>>> -#elif (MDS_ARCH_TYPE > 7) >>>> -#error MDS_ARCH_TYPE should be in the range 0 to 7. >>>> -#endif >>>> - >>>> #define MDS_WORD_SIZE_TYPE ((sizeof(long)/4) - 1) /* 0 for >>>> 32-bit, 1 for 64-bit */ >>>> -#define MDS_SELF_ARCHWORD ((MDS_SVC_ARCHWORD_TYPE) >>>> ((MDS_WORD_SIZE_TYPE<<3) | MDS_ARCH_TYPE)) >>>> +/* >>>> + * 4 bit ARCHWORD usage: >>>> + * Bit 3 is wordsize >>>> + * Bit 2:0 is a version field indicating capabilities. >>>> + * Version 0 uses 1400 bytes fragmentation. >>>> + * Version 1 uses TIPC max msg (66000 bytes) fragmentation. >>>> + */ >>>> +#define MDS_SELF_ARCHWORD ((MDS_SVC_ARCHWORD_TYPE) >>>> ((MDS_WORD_SIZE_TYPE<<3) | 1)) >>>> typedef enum { >>>> MDS_VIEW_NORMAL, >>>> diff --git a/osaf/libs/core/mds/mds_c_sndrcv.c >>>> b/osaf/libs/core/mds/mds_c_sndrcv.c >>>> --- a/osaf/libs/core/mds/mds_c_sndrcv.c >>>> +++ b/osaf/libs/core/mds/mds_c_sndrcv.c >>>> @@ -1483,10 +1483,10 @@ static uint32_t mcm_msg_encode_full_or_f >>>> msg_send.dest_pwe_id = >>>> m_MDS_GET_PWE_ID_FROM_SVC_HDL(svc_cb->svc_hdl); >>>> msg_send.dest_vdest_id = dest_vdest_id; >>>> msg_send.src_svc_sub_part_ver = svc_cb->svc_sub_part_ver; >>>> + msg_send.msg_arch_word = to_msg->rem_svc_arch_word; >>>> if (msg_send.msg.encoding == MDS_ENC_TYPE_FULL) { >>>> if (NULL == bcast_ptr) { >>>> - msg_send.msg_fmt_ver = >>>> cbinfo.info.enc.o_msg_fmt_ver; /* archword will be filled in >>>> next label */ >>>> - msg_send.msg_arch_word = to_msg->rem_svc_arch_word; >>>> + msg_send.msg_fmt_ver = cbinfo.info.enc.o_msg_fmt_ver; >>>> } >>>> } else { >>>> if (NULL == bcast_ptr) { >>>> @@ -6502,14 +6502,10 @@ static uint32_t mcm_query_for_node_dest_ >>>> if (m_MDS_GET_ADEST == adest) { >>>> *to = DESTINATION_SAME_PROCESS; >>>> } else if (MDS_SELF_ARCHWORD == arch_word) { >>>> - if ((0 == (MDS_SELF_ARCHWORD & 0x7) && (0 == (arch_word & >>>> 0x7)))) { >>>> - if (m_MDS_GET_NODE_ID_FROM_ADEST(m_MDS_GET_ADEST) == >>>> m_MDS_GET_NODE_ID_FROM_ADEST(adest)) { >>>> - *to = DESTINATION_ON_NODE; /* This hash define >>>> may give a wrong impression, but actually it means to do flat_enc */ >>>> - } else { >>>> - *to = DESTINATION_OFF_NODE; >>>> - } >>>> + if (m_MDS_GET_NODE_ID_FROM_ADEST(m_MDS_GET_ADEST) == >>>> m_MDS_GET_NODE_ID_FROM_ADEST(adest)) { >>>> + *to = DESTINATION_ON_NODE; /* This hash define may >>>> give a wrong impression, but actually it means to do flat_enc */ >>>> } else { >>>> - *to = DESTINATION_ON_NODE; >>>> + *to = DESTINATION_OFF_NODE; >>>> } >>>> } else { >>>> *to = DESTINATION_OFF_NODE; >>>> diff --git a/osaf/libs/core/mds/mds_dt_tipc.c >>>> b/osaf/libs/core/mds/mds_dt_tipc.c >>>> --- a/osaf/libs/core/mds/mds_dt_tipc.c >>>> +++ b/osaf/libs/core/mds/mds_dt_tipc.c >>>> @@ -2035,7 +2035,16 @@ uint32_t mds_mdtm_send_tipc(MDTM_SEND_RE >>>> m_MDS_LOG_INFO("MDTM: User Sending Data lenght=%d >>>> Fr_svc=%d to_svc=%d\n", len, >>>> req->src_svc_id, req->dest_svc_id); >>>> - int frag_size = MDTM_NORMAL_MSG_FRAG_SIZE; >>>> + // determine fragment limit using a bit in >>>> destination archword >>>> + int frag_size; >>>> + int version = req->msg_arch_word & 0x7; >>>> + if (version > 0) { >>>> + // normal mode, use TIPC fragmentation >>>> + frag_size = TIPC_MAX_USER_MSG_SIZE; >>>> + } else { >>>> + // old mode, completely skip TIPC fragmentation >>>> + frag_size = MDTM_NORMAL_MSG_FRAG_SIZE; >>>> + } >>>> if (len > frag_size) { >>>> /* Packet needs to be fragmented and send */ >>>> diff --git a/osaf/libs/core/mds/mds_log.c >>>> b/osaf/libs/core/mds/mds_log.c >>>> --- a/osaf/libs/core/mds/mds_log.c >>>> +++ b/osaf/libs/core/mds/mds_log.c >>>> @@ -64,8 +64,8 @@ uint32_t mds_log_init(char *log_file_nam >>>> if ((fh = fopen(lf, "a+")) != NULL) { >>>> fclose(fh); >>>> - log_mds_notify("BEGIN MDS LOGGING| >>>> PID=%d|ARCH=%d|64bit=%ld\n", >>>> - process_id, MDS_ARCH_TYPE, >>>> (long)MDS_WORD_SIZE_TYPE); >>>> + log_mds_notify("BEGIN MDS LOGGING| >>>> PID=%d|ARCHW=%x|64bit=%ld\n", >>>> + process_id, MDS_SELF_ARCHWORD, >>>> (long)MDS_WORD_SIZE_TYPE); >>>> } >>>> return NCSCC_RC_SUCCESS; >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For >>>> FREE >>>> Instantly run your Selenium tests across 300+ browser/OS combos. Get >>>> unparalleled scalability from the best Selenium testing platform >>>> available. >>>> Simple to use. Nothing to install. Get started now for free." >>>> http://p.sf.net/sfu/SauceLabs >>>> _______________________________________________ >>>> Opensaf-devel mailing list >>>> Opensaf-devel@lists.sourceforge.net >>>> <mailto:Opensaf-devel@lists.sourceforge.net> >>>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For >>>> FREE >>>> Instantly run your Selenium tests across 300+ browser/OS combos. Get >>>> unparalleled scalability from the best Selenium testing platform >>>> available. >>>> Simple to use. Nothing to install. Get started now for free." >>>> http://p.sf.net/sfu/SauceLabs >>>> _______________________________________________ >>>> Opensaf-devel mailing list >>>> Opensaf-devel@lists.sourceforge.net >>>> <mailto:Opensaf-devel@lists.sourceforge.net> >>>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel >>>> >>>> >>> ------------------------------------------------------------------------------ >>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE >>> Instantly run your Selenium tests across 300+ browser/OS combos. >>> Get unparalleled scalability from the best Selenium testing platform >>> available >>> Simple to use. Nothing to install. Get started now for free." >>> http://p.sf.net/sfu/SauceLabs >>> _______________________________________________ >>> Opensaf-devel mailing list >>> Opensaf-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel >>> ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel