[javasim-announce] RE: Active Networkin with JavaSim
Hung-ying Tyan
tyanh@fla.fujitsu.com
Thu, 10 Jan 2002 14:53:29 -0800
This is a multi-part message in MIME format.
------=_NextPart_000_007A_01C199E6.94365100
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
To intercept a data packet, modify drcl.inet.core.PktDispatcher by
adding the following method:
protected synchronized void process(Object data_, drcl.comp.Port
inPort_)
{
if (data_ instanceof InetPacket) {
InetPacket ipkt_ = (InetPacket)data_;
// do stuff with ipkt_
...
}
super.process(data_, inPort_);
}
The following code segment is an example that prints out every passing
multicast packet:
protected synchronized void process(Object data_, drcl.comp.Port
inPort_)
{
if (data_ instanceof InetPacket) {
InetPacket ipkt_ = (InetPacket)data_;
long dest_ = ipkt_.getDestination();
if (address.isMcast(dest_)) {
System.out.println("MCAST_PKT: " + this + "/" +
ipkt_);
}
}
super.process(data_, inPort_);
}
The above works for packets that come from both local protocols and the
network.
Hung-ying Tyan
Member of Research Staff
IP Networking Research
Fujitsu Labs. of America, Inc.
595 Lawrence Expressway
Sunnyvale, CA 94085
Tel: (408) 530-4622 Fax: (408) 530-4515
-----Original Message-----
From: javasim-announce-owner@cs.uiuc.edu
[mailto:javasim-announce-owner@cs.uiuc.edu] On Behalf Of Moufida Maimour
Sent: Thursday, January 10, 2002 1:45 PM
To: javasim-announce@cs.uiuc.edu
Subject: Active Networkin with JavaSim
Hi,
is there anyone who has tried to implement an active networking based
application using JavaSim ? To do this in NS and still benefit from the
existing multicast IP, we have to change the internals in order to
allow the interception of a transiting packet by an active agent before
its forward by a node (which is an intermediate one). Is it simpler to
do when using JavaSim ?
--
Moufida MAIMOUR
Ph.D. student
e-mail: Moufida.Maimour@ens-lyon.fr
URL : http://www.ens-lyon.fr/~mmaimour
------=_NextPart_000_007A_01C199E6.94365100
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 10">
<meta name=3DOriginator content=3D"Microsoft Word 10">
<link rel=3DFile-List href=3D"cid:filelist.xml@01C199E6.90B121E0">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:DocumentKind>DocumentEmail</w:DocumentKind>
<w:EnvelopeVis/>
<w:Compatibility>
<w:UseFELayout/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:\00CB\00CE\00CC\00E5;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:553679495 -2147483648 8 0 66047 0;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;
text-underline:single;}
p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:SimSun;}
pre
{margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Courier New";
mso-fareast-font-family:SimSun;}
span.EmailStyle18
{mso-style-type:personal-reply;
mso-style-noshow:yes;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:"Courier New";
mso-ascii-font-family:"Courier New";
mso-hansi-font-family:"Courier New";
mso-bidi-font-family:Arial;
color:navy;}
span.SpellE
{mso-style-name:"";
mso-spl-e:yes;}
span.GramE
{mso-style-name:"";
mso-gram-e:yes;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */=20
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
</head>
<body lang=3DEN-US link=3Dblue vlink=3Dblue style=3D'tab-interval:.5in'>
<div class=3DSection1>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'>To intercept a data packet, modify <span =
class=3DSpellE>drcl.inet.core.PktDispatcher</span>
by adding the following method:<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:1'> </span><span
class=3DGramE>protected</span> synchronized void process(Object data_, =
<span
class=3DSpellE>drcl.comp.Port</span> <span =
class=3DSpellE>inPort</span>_)<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:1'> =
</span>{<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:2'>  =
; </span><span
class=3DGramE>if</span> (data_ <span class=3DSpellE>instanceof</span> =
<span
class=3DSpellE>InetPacket</span>) {<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; </span><span
class=3DSpellE>InetPacket</span> <span class=3DSpellE>ipkt</span>_ =3D =
(<span
class=3DSpellE>InetPacket</span><span =
class=3DGramE>)data</span>_;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; </span>//
do stuff with <span =
class=3DSpellE>ipkt</span>_<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; =
</span>...<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:2'>  =
; </span>}<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:2'>  =
; </span><span
class=3DSpellE><span class=3DGramE>super.process</span></span><span =
class=3DGramE>(</span>data_,
<span class=3DSpellE>inPort</span>_);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:1'> =
</span>}<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'>The following code segment is an example that prints out =
every passing
multicast packet:<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:1'> </span><span
class=3DGramE>protected</span> synchronized void process(Object data_, =
<span
class=3DSpellE>drcl.comp.Port</span> <span =
class=3DSpellE>inPort</span>_)<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:1'> =
</span>{<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:2'>  =
; </span><span
class=3DGramE>if</span> (data_ <span class=3DSpellE>instanceof</span> =
<span
class=3DSpellE>InetPacket</span>) {<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; </span><span
class=3DSpellE>InetPacket</span> <span class=3DSpellE>ipkt</span>_ =3D =
(<span
class=3DSpellE>InetPacket</span><span =
class=3DGramE>)data</span>_;<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; </span><span
class=3DGramE>long</span> <span class=3DSpellE>dest</span>_ =3D <span =
class=3DSpellE>ipkt_.getDestination</span>();<o:p></o:p></span></font></p=
>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; </span><span
class=3DGramE>if</span> (<span =
class=3DSpellE>address.isMcast</span>(<span
class=3DSpellE>dest</span>_)) {<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:4'>  =
; =
</span><span
class=3DSpellE><span class=3DGramE>System.out.println</span></span><span
class=3DGramE>(</span>"MCAST_PKT: " + this + "/" + =
<span
class=3DSpellE>ipkt</span>_);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:3'>  =
; =
</span>}<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:2'>  =
; </span>}<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:2'>  =
; </span><span
class=3DSpellE><span class=3DGramE>super.process</span></span><span =
class=3DGramE>(</span>data_,
<span class=3DSpellE>inPort</span>_);<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><span =
style=3D'mso-tab-count:1'> =
</span>}<o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><span class=3DGramE><font size=3D2 color=3Dnavy =
face=3D"Courier New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'>The above works for packets that come from both local =
protocols and
the network.</span></font></span><font size=3D2 color=3Dnavy =
face=3D"Courier New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p></o:p></span></font></p>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<div>
<p class=3DMsoAutoSig><font size=3D3 color=3Dnavy face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt;color:navy;mso-no-proof:yes'>Hung-ying =
Tyan<o:p></o:p></span></font></p>
<p class=3DMsoAutoSig><font size=3D3 color=3Dnavy face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt;color:navy;mso-no-proof:yes'>Member of =
Research Staff<o:p></o:p></span></font></p>
<p class=3DMsoAutoSig><font size=3D3 color=3Dnavy face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt;color:navy;mso-no-proof:yes'>IP Networking =
Research<o:p></o:p></span></font></p>
<p class=3DMsoAutoSig><font size=3D3 color=3Dnavy face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt;color:navy;mso-no-proof:yes'><o:p> </o:p><=
/span></font></p>
<p class=3DMsoAutoSig><font size=3D3 color=3Dnavy face=3D"Times New =
Roman"><span
style=3D'font-size:12.0pt;color:navy;mso-no-proof:yes'>Fujitsu Labs. of =
America,
Inc.<o:p></o:p></span></font></p>
<p class=3DMsoNormal =
style=3D'mso-layout-grid-align:none;text-autospace:none'><font
size=3D2 color=3Dnavy face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:
"Courier New";color:navy;mso-no-proof:yes'>595 Lawrence =
Expressway<o:p></o:p></span></font></p>
<p class=3DMsoNormal =
style=3D'mso-layout-grid-align:none;text-autospace:none'><font
size=3D2 color=3Dnavy face=3D"Courier New"><span =
style=3D'font-size:10.0pt;font-family:
"Courier New";color:navy;mso-no-proof:yes'>Sunnyvale, CA<span
style=3D'mso-spacerun:yes'> =
</span>94085<o:p></o:p></span></font></p>
<p class=3DMsoAutoSig><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:navy;mso-no-proof:yes'>Tel:
(408) 530-4622<span style=3D'mso-spacerun:yes'> </span>Fax: (408) =
530-4515</span></font><font
color=3Dnavy><span =
style=3D'color:navy;mso-no-proof:yes'><o:p></o:p></span></font></p>
</div>
<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3D"Courier =
New"><span
style=3D'font-size:10.0pt;font-family:"Courier =
New";mso-bidi-font-family:Arial;
color:navy'><o:p> </o:p></span></font></p>
<div style=3D'border:none;border-left:solid blue 1.5pt;padding:0in 0in =
0in 4.0pt'>
<p class=3DMsoNormal><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma'>-----Original Message-----<br>
<b><span style=3D'font-weight:bold'>From:</span></b>
javasim-announce-owner@cs.uiuc.edu =
[mailto:javasim-announce-owner@cs.uiuc.edu] <b><span
style=3D'font-weight:bold'>On Behalf Of </span></b>Moufida Maimour<br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Thursday, January =
10, 2002
1:45 PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> =
javasim-announce@cs.uiuc.edu<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> Active Networkin =
with
JavaSim</span></font></p>
<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p> </o:p></span></font></p>
<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Hi, <br>
is there anyone who has tried to implement an active networking based
application using JavaSim ? To do this in NS and still benefit from the
existing multicast IP, we have to change the internals in =
order to
allow the interception of a transiting packet by an active agent before =
its
forward by a node (which is an intermediate one). Is it simpler to do =
when
using JavaSim ? <o:p></o:p></span></font></p>
<pre><font size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>-- <o:p></o:p></span></font></pre><pre><f=
ont
size=3D2 face=3D"Courier New"><span style=3D'font-size:10.0pt'>Moufida =
MAIMOUR<o:p></o:p></span></font></pre><pre><font
size=3D2 face=3D"Courier New"><span style=3D'font-size:10.0pt'>Ph.D. =
student<o:p></o:p></span></font></pre><pre><font
size=3D2 face=3D"Courier New"><span style=3D'font-size:10.0pt'>e-mail: =
Moufida.Maimour@ens-lyon.fr <o:p></o:p></span></font></pre><pre><fon=
t
size=3D2 face=3D"Courier New"><span =
style=3D'font-size:10.0pt'>URL : <a
href=3D"http://www.ens-lyon.fr/~mmaimour">http://www.ens-lyon.fr/~mmaimou=
r</a><o:p></o:p></span></font></pre>
<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'> <o:p></o:p></span></font></p>
</div>
</div>
</body>
</html>
------=_NextPart_000_007A_01C199E6.94365100--