Dear Eduard,
I found that the Demonstrator automagically creates the mapping, but my own VMs
with the compiled stack didn’t. That solved my issue, thank you.
One question though, do I understand correctly that the mapping for
applications is done statically (for now)?
Is it possible at this moment to make the applications reachable from for
instance two connections at the same time?
Cheers,
Koen
On 22 Jun 2016, at 13:20, Eduard Grasa Gras <eduard.grasa@xxxxxxxxx> wrote:
Dear Koen,
I think that you are just missing a little piece, the application to DIF
mappings. Since you have multiple DIFs to choose from, when the client
requests a flow to a destination application the IPCM needs to know somehow
which DIF to choose. In RINA the component that has this information is the
DIF allocator.
The DIF allocator is not really implemented in the stack, it is just reduced
to a configuration file with a static directory of destination application
name to DIF mappings. The file is located at <IRATI installation
path>/etc/da.map (must be called da.map). You can edit it anytime, the IPCM
will detect it and reload the mappings. Here is an example:
{
"applicationToDIFMappings" : [ {
"encodedAppName" : "traffic.generator.server-1--",
"difName" : "vpn1.DIF"
}, {
"encodedAppName" : "server.ioq3-0--",
"difName" : "vpn1.DIF"
}, {
"encodedAppName" : "rina.apps.echotime.server-1--",
"difName" : "vpn1.DIF"
}, {
"encodedAppName" : "rina.apps.manager-1--",
"difName" : "NMS.DIF"
}]
}
So you just need to edit the file with the proper mappings. It works both for
flow allocation and application registration (in case the application to be
registered doesn't specify a DIF).
Cheers,
Eduard
2016-06-22 12:51 GMT+02:00 Koen Veelenturf <koen.veelenturf@xxxxxx
<mailto:koen.veelenturf@xxxxxx>>:
Dear all,
I’m currently doing a research project for my master on RINA and multihoming.
I’ve been playing around with the IRATI demonstrator and also built by own
VMs with the IRATI stack.
I’ve built this network topology and created a couple of DIFs to represent
two different ISPs.
These are the DIFs I currently have:
- Node1 - Node4: “Provider A Access DIF”
- Node1 - Node2: “Provider B Access DIF”
- Node4 - Node3: “Provider A Regional DIF”
- Node2 - Node3: “Provider B Regional DIF”
- Node3 - Node5: “Upstream DIF”
And between Node1 and Node5 I’ve created DIFs for “Internet ProviderA DIF”
and “Internet ProviderB DIF” which spans over the corresponding access and
regional DIFs.
I was able to successfully enroll the DIFS using the IPCM console and was
able to run a RINA echo time server on node 5, while specifying the DIF it
should register on.
However, I was not able to run the client. I just the following commands for
server and client:
server: rina-echo-time -d providerAInternet.DIF -l
client: rina-echo-time -d providerAInternet.DIF -c 100
<mulithometopo-network-rep.png>
Running the client results in the following error message in the ipcm.log
file:
<logfile>
793(1466590549)#librina.nl <http://librina.nl/>-manager (DBG): NL msg RX.
Fam: 21; Opcode: 44_APP_ALLOC_FLOW_REQ; Sport: 8172; Dport: 1; Seqnum:
1466590550; Request; SIPCP: 0; DIPCP: 0
793(1466590549)#librina.core (DBG): Added event of type
0_FLOW_ALLOCATION_REQUESTED and sequence number 1466590550 to events queue
793(1466590549)#ipcm (DBG): Got event of type 0_FLOW_ALLOCATION_REQUESTED and
sequence number 1466590550
793(1466590549)#ipcm.flow-alloc (ERR)[flow_allocation_requested_local]:
Error: Cannot find an IPC process to serve flow allocation request (local-app
= rina.apps.echotime.client:1::, remote-app = rina.apps.echotime.server:1::
793(1466590549)#librina.ipc-manager (DBG): ApplicationManager::flowAllocated
called
793(1466590549)#librina.nl <http://librina.nl/>-manager (DBG): NL msg TX.
Fam: 21; Opcode: 45_APP_ALLOC_FLOW_REQ_RES; Sport: 1; Dport: 8172; Seqnum:
1466590550; Response; SIPCP: 0; DIPCP: 0
793(1466590549)#ipcm.flow-alloc
(INFO)[application_flow_allocation_failed_notify]: Flow allocation between
rina.apps.echotime.client:1:: and rina.apps.echotime.server:1:: failed:
applications informed
793(1466590551)#librina.nl <http://librina.nl/>-manager (DBG): NL msg RX.
Fam: 21; Opcode: 27_SOCK_CLOSED_NOT; Sport: 0; Dport: 1; Seqnum: 0;
Notification; SIPCP: 0; DIPCP: 0
793(1466590551)#librina.core (DBG): NL socket at port 8172 is closed
793(1466590551)#librina.core (DBG): Added event of type
22_OS_PROCESS_FINALIZED and sequence number 0 to events queue
793(1466590551)#ipcm (DBG): Got event of type 22_OS_PROCESS_FINALIZED and
sequence number 0
793(1466590551)#ipcm.app (INFO)[os_process_finalized_handler]: Application
rina.apps.echotime.client:1::terminated
</logfile>
What I’m trying to do should in theory be possible right? Am I doing
something wrong or might there be a problem with the stack?
Please let me know if there’s more information needed.
Kind regards,
Koen Veelenturf
Attachment:
signature.asc
Description: Message signed with OpenPGP using GPGMail