Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)

From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <[email-masked]>
Date: Thu, 28 Mar 2013 08:01:18 -0500

Hi,

Be warned that this is not an official version, but thanks for trying dtn-2.9.0x. I believe the changes below will fix the errors but have not been able to compile it yet. I am looking into installing Xerces C so that I can build the external convergence layer also.

Regards,

DZ

In ExternalConvergenceLayer.cc, get_outgoing_bundle is defined on line 1402 and needs to be updated:

//----------------------------------------------------------------------

BundleRef

ECLLinkResource::get_outgoing_bundle(clmessage::bundle_attributes bundle_attribs)

{

//    GbofId gbof_id;

//    gbof_id.source_ = EndpointID( bundle_attribs.source_eid() );

//    gbof_id.creation_ts_.seconds_ =

//            (u_int32_t)bundle_attribs.timestamp_seconds();

//    gbof_id.creation_ts_.seqno_ =

//            (u_int32_t)bundle_attribs.timestamp_sequence();

//    gbof_id.is_fragment_ = bundle_attribs.is_fragment();

//

//    if ( bundle_attribs.fragment_length().present() )

//        gbof_id.frag_length_ = (u_int32_t)bundle_attribs.fragment_length().get();

//    else

//        gbof_id.frag_length_ = 0;

//

//    if ( bundle_attribs.fragment_length().present() )

//        gbof_id.frag_offset_ = (u_int32_t)bundle_attribs.fragment_offset().get();

//    else

//        gbof_id.frag_offset_ = 0;

    GbofId gbof_id;

    gbof_id.mutable_source()->assign( EndpointID( bundle_attribs.source_eid() ) );

    gbof_id.mutable_creation_ts()->seconds_ = (u_int32_t)bundle_attribs.timestamp_seconds();

    gbof_id.mutable_creation_ts()->seqno_ = (u_int32_t)bundle_attribs.timestamp_sequence();

    gbof_id.set_is_fragment( bundle_attribs.is_fragment() );

    if ( bundle_attribs.fragment_length().present() )

        gbof_id.set_frag_length( (u_int32_t)bundle_attribs.fragment_length().get() );

    else

        gbof_id.set_frag_length(0);

    if ( bundle_attribs.fragment_length().present() )

        gbof_id.set_frag_offset( (u_int32_t)bundle_attribs.fragment_offset().get() );

    else

        gbof_id.set_frag_offset(0);

    return outgoing_bundles_.find(gbof_id);

}

David Zoller

COLSA Corporation

Marshall Space Flight Center

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of yuanp
Sent: Thursday, March 28, 2013 3:41 AM
To: [email-masked]
Subject: [dtn-users] Error in compiling DTN2

Hi all,

I am trying to install DTN2 in Ubuntu 10.04, but meet some error. The vision of dtn2 is dtn-2.9.0x. I have also installed oasys-1.6.0x, tcl8.5.10, db-5.1.29 and xerces-c-src_2_8_0.

When configure dtn2, I receive some error:

../servlib/bundling/GbofId.h:114: error: ‘dtn::EndpointID dtn::GbofId::source_’ is private

conv_layers/ExternalConvergenceLayer.cc:1405: error: within this context

../servlib/bundling/GbofId.h:115: error: ‘dtn::BundleTimestamp dtn::GbofId::creation_ts_’ is private

conv_layers/ExternalConvergenceLayer.cc:1406: error: within this context

../servlib/bundling/GbofId.h:115: error: ‘dtn::BundleTimestamp dtn::GbofId::creation_ts_’ is private

conv_layers/ExternalConvergenceLayer.cc:1408: error: within this context

../servlib/bundling/GbofId.h:116: error: ‘bool dtn::GbofId::is_fragment_’ is private

conv_layers/ExternalConvergenceLayer.cc:1410: error: within this context

../servlib/bundling/GbofId.h:117: error: ‘u_int32_t dtn::GbofId::frag_length_’ is private

conv_layers/ExternalConvergenceLayer.cc:1413: error: within this context

../servlib/bundling/GbofId.h:117: error: ‘u_int32_t dtn::GbofId::frag_length_’ is private

conv_layers/ExternalConvergenceLayer.cc:1415: error: within this context

../servlib/bundling/GbofId.h:118: error: ‘u_int32_t dtn::GbofId::frag_offset_’ is private

conv_layers/ExternalConvergenceLayer.cc:1418: error: within this context

../servlib/bundling/GbofId.h:118: error: ‘u_int32_t dtn::GbofId::frag_offset_’ is private

conv_layers/ExternalConvergenceLayer.cc:1420: error: within this context

Has anyone met this error? I am greatly appreciated for some help.

Regards!

_______________________________________________

dtn-users mailing list

[email-masked]<mailto:[email-masked]>

https://www.irtf.org/mailman/listinfo/dtn-users

---

From: "Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]" <[email-masked]>
Date: Thu, 28 Mar 2013 09:49:41 -0500

Hi again,
After installing Xerces C, I found that the code below compiles correctly but ExternalRouter.cc had similar issues when referencing the changed GbofId object. I have sent the updated files on a separate email and will update the online versions this evening. Please let me know if you run into other issues.

Elwyn – I was able to verify that the official DTN2 version still compiles correctly with the external convergence layer enabled.
Sorry for the confusion,
DZ

David Zoller
COLSA Corporation

From: [email-masked] [mailto:[email-masked]] On Behalf Of Zoller, David A. (MSFC-EO50)[HOSC SERVICES CONTRACT]
Sent: Thursday, March 28, 2013 8:01 AM
To: yuanp; [email-masked]
Subject: Re: [dtn-users] Error in compiling DTN2 (2.9.0x - not the official version)

Hi,

Regards,

DZ

BundleRef

{

//    GbofId gbof_id;

//

//    else

//

//    else

    GbofId gbof_id;

    else

    else

}

David Zoller

COLSA Corporation

-----Original Message-----
From: [email-masked]<mailto:[email-masked]> [mailto:[email-masked]] On Behalf Of yuanp
Sent: Thursday, March 28, 2013 3:41 AM
To: [email-masked]<mailto:[email-masked]>
Subject: [dtn-users] Error in compiling DTN2

Hi all,

Regards!

dtn-users mailing list

---

From: Elwyn Davies <[email-masked]>
Date: Thu, 28 Mar 2013 15:35:50 +0000

OK.

Yes.. the official version should be OK but also ought to be fixed up.

What is the status of the patches - Are they sufficiently stable to
include in the main line code now? Do you have any figures for what the
performance improvements have done to make thinsg better?

I'll talk to Alex about getting these merged into Sourceforge.

Regards,
Elwyn

On Thu, 2013-03-28 at 09:49 -0500, Zoller, David A. (MSFC-EO50)[HOSC

> Elwyn – I was able to verify that the official DTN2 version still
> compiles correctly with the external convergence layer enabled.
> 
> Sorry for the confusion,
> 
> DZ
> 
>  
> 
> David Zoller
> 
> COLSA Corporation
>

---

From: Jim Wright <[email-masked]>
Date: Thu, 28 Mar 2013 10:06:25 -0600

Regarding the dependency on xerces-c, it explicitly states that it must be less than version 3.0.0. This is fine for Ubuntu 10.04, but 12.04 has a newer version. I presume a number of other distributions also include the newer version since 3.0.0 was released in 2008. It would be useful to investigate whether this restriction is necessary.

On a more general note, is user-contributed code welcome in DTN2? I've done a bit of work lately but have no idea how to contribute it back. What is the process for the evolution of the DTN2 code? Is there some sort of system for submitting patches and tracking whether they are being accepted or not?

Thanks,
Jim

On Mar 28, 2013, at 9:35 AM, Elwyn Davies wrote:

> [email-masked]

---

From: Elwyn Davies <[email-masked]>
Date: Thu, 28 Mar 2013 16:28:32 +0000

Hi, Jim.

On Thu, 2013-03-28 at 10:06 -0600, Jim Wright wrote:
> Regarding the dependency on xerces-c, it explicitly states that it
> must be less than version 3.0.0. This is fine for Ubuntu 10.04, but
> 12.04 has a newer version. I presume a number of other distributions
> also include the newer version since 3.0.0 was released in 2008. It
> would be useful to investigate whether this restriction is necessary.

The restriction is necessary.  I was bitten by this some time ago and
put in the ACS check to require v2.x (x >= 6).  The interface has been
changed for Xerces-3 and the DTN2 code is not compatible... of course if
anybody has time or inclination to update it but it didn't appear to be
trivial.

As regards Ubuntu 12.04, the repositories have both 3.0 and 2.8. I have
a machine here running Ubuntu 12.04 with Xerces 2.8 from the repository
which is just fine - you need libxerces-c28 and libxerces-c2-dev.

> 
> On a more general note, is user-contributed code welcome in DTN2? 

Certainly.  The chief maintainer is Alex McMahon at TCD.

> I've done a bit of work lately but have no idea how to contribute it
> back. What is the process for the evolution of the DTN2 code? Is there
> some sort of system for submitting patches and tracking whether they
> are being accepted or not?

The first stage is to send a set of patches against the current
sourceforge tip changeset together with a description of what has been
done as a text file that can be used for the change log.

There should preferably by some unit test code to go with it.

The patches can either be incorporated into the mainline by Alex if they
seem of general use or left as a set of patches for people to use
according to taste.  The acceptance of patches is pretty informal -
email exchange on dtn-users is the usual way!  Conforming to the general
coding standard uased in DTN2 is obviously important.  We run a nightly
build/test process to check everything is still in good shape.

So let us know what you have done.

BRW I have a set of API improvements and a completion for the scripting
API to allow it to handle extension and metadata blocks in bundles which
was previously missing.  This will be coming out very shortly.

Regards,
Elwyn