Thread: [mpls-linux-general] packets not delivered to layer 3 (??)
Status: Beta
Brought to you by:
jleu
|
From: <sam...@ya...> - 2002-09-11 05:59:42
|
Hello James and all,
I have set up 1.152 on two Linux boxes running kernel
ver. 2.4.18-3. The two boxes are set up as...
--------- ---------
| A | | B |
--------- ---------
|eth0 |eth0
|10.3.8.198 |10.3.8.93
-----------------------------------
And the lsp was created b/w A and B using...
On A :
mplsadm2 -A -O -o push:gen:200:set:eth0:ipv4:10.3.8.93
ip2 route add 10.3.8.93 dev eth0 lsp 0x00000002
mpls -L eth0:0
On B:
mplsadm2 -A -I gen:200:0
mpls -L eth0:0
I believe these commands are enough to create an LSP
between A & B... or at least I hope so.
Now, when I try to Ping B from A, the packets reach B,
but it seems the packets are not delivered correctly
up to layer 3 on B. The result is that the
acknowledgement doesn't reach back to A and A shows
100% packet loss. If I try to ping A from B, then the
ping packets reach A and come back to B (taking the
lsp from A to B). But again, the packets aren't
recognized by B and again ping shows 100% packet loss.
Similar thing happens when I tried injecting packets
using nemesis tools.
Is there any problem with the way I've set up the LSP
or is it some other problem?
Any help would be greatly appreciated.
Cheers,
Sameer
________________________________________________________________________
Want to sell your car? advertise on Yahoo Autos Classifieds. It's Free!!
visit http://in.autos.yahoo.com
|
|
From: James R. L. <jl...@mi...> - 2002-09-11 14:58:18
|
First thing is to get mpls-linux-1.170, duplicate test and send the contents of /proc/net/mpls* and the output from 'ip route show'. Jim On Wed, Sep 11, 2002 at 06:59:26AM +0100, Sameer Gharat wrote: > Hello James and all, > > I have set up 1.152 on two Linux boxes running kernel > ver. 2.4.18-3. The two boxes are set up as... > --------- --------- > | A | | B | > --------- --------- > |eth0 |eth0 > |10.3.8.198 |10.3.8.93 > ----------------------------------- > > And the lsp was created b/w A and B using... > On A : > mplsadm2 -A -O -o push:gen:200:set:eth0:ipv4:10.3.8.93 > ip2 route add 10.3.8.93 dev eth0 lsp 0x00000002 > mpls -L eth0:0 > > On B: > mplsadm2 -A -I gen:200:0 > mpls -L eth0:0 > > I believe these commands are enough to create an LSP > between A & B... or at least I hope so. > > Now, when I try to Ping B from A, the packets reach B, > but it seems the packets are not delivered correctly > up to layer 3 on B. The result is that the > acknowledgement doesn't reach back to A and A shows > 100% packet loss. If I try to ping A from B, then the > ping packets reach A and come back to B (taking the > lsp from A to B). But again, the packets aren't > recognized by B and again ping shows 100% packet loss. > Similar thing happens when I tried injecting packets > using nemesis tools. > > Is there any problem with the way I've set up the LSP > or is it some other problem? > > Any help would be greatly appreciated. > > Cheers, > Sameer > > > ________________________________________________________________________ > Want to sell your car? advertise on Yahoo Autos Classifieds. It's Free!! > visit http://in.autos.yahoo.com > > > ------------------------------------------------------- > In remembrance > www.osdn.com/911/ > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general -- James R. Leu |
|
From: Kenny <chi...@it...> - 2002-09-12 02:18:28
|
Hi Jim,
When I was tracing ldp-portable, I found something strange.
Why the both min_gen and max_gen of ldp_range are assigned to
LDP_RANGE_DEF_GEN_MIN?
Please see the "case LDP_GENERIC:" in the following code.
Best Regards,
Kenny
---------------------ldp_range.c------------------------------------------------------------------
ldp_range *ldp_range_create(int32_t label_space, ldp_label_range_type
type)
{
ldp_range *r = (ldp_range *) ldp_malloc(sizeof(ldp_range));
if (r) {
LDP_LIST_INIT(&r->peer_root, ldp_peer);
LDP_LIST_INIT(&r->if_root, ldp_if);
LDP_REFCNT_INIT(r, 0);
r->label_space = label_space;
r->type = type;
switch (type) {
case LDP_GENERIC:
r->min.gen = LDP_RANGE_DEF_GEN_MIN;
r->max.gen = LDP_RANGE_DEF_GEN_MIN;
break;
case LDP_ATM_VP:
r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
break;
case LDP_ATM_VC:
r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
break;
case LDP_ATM_VP_VC:
r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
break;
case LDP_FR_10:
r->min.fr = LDP_RANGE_DEF_FR_MIN;
r->max.fr = LDP_RANGE_DEF_FR_10_MAX;
break;
case LDP_FR_24:
r->min.fr = LDP_RANGE_DEF_FR_MIN;
r->max.fr = LDP_RANGE_DEF_FR_24_MAX;
break;
default:
ldp_free(r);
return NULL;
}
}
return r;
}
|
|
From: James R. L. <jl...@mi...> - 2002-09-12 03:23:40
|
You caugth me. In fact the label range isn't even used any where in the
code. I'm thinking of getting rid of it. I'm thinking that the label
range should be controlled by the label manager. From ldp-portable's
perspective the label manager is an outside entity and ldp-portable
should know nothing of it.
Anyone care to comment?
Jim
On Thu, Sep 12, 2002 at 10:14:45AM +0800, Kenny wrote:
> Hi Jim,
>
> When I was tracing ldp-portable, I found something strange.
> Why the both min_gen and max_gen of ldp_range are assigned to
> LDP_RANGE_DEF_GEN_MIN?
>
> Please see the "case LDP_GENERIC:" in the following code.
>
> Best Regards,
> Kenny
>
> ---------------------ldp_range.c------------------------------------------------------------------
> ldp_range *ldp_range_create(int32_t label_space, ldp_label_range_type
> type)
> {
> ldp_range *r = (ldp_range *) ldp_malloc(sizeof(ldp_range));
>
> if (r) {
> LDP_LIST_INIT(&r->peer_root, ldp_peer);
> LDP_LIST_INIT(&r->if_root, ldp_if);
> LDP_REFCNT_INIT(r, 0);
>
> r->label_space = label_space;
> r->type = type;
> switch (type) {
> case LDP_GENERIC:
> r->min.gen = LDP_RANGE_DEF_GEN_MIN;
> r->max.gen = LDP_RANGE_DEF_GEN_MIN;
> break;
> case LDP_ATM_VP:
> r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
> r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
> break;
> case LDP_ATM_VC:
> r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
> r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
> break;
> case LDP_ATM_VP_VC:
> r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
> r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
> r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
> r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
> break;
> case LDP_FR_10:
> r->min.fr = LDP_RANGE_DEF_FR_MIN;
> r->max.fr = LDP_RANGE_DEF_FR_10_MAX;
> break;
> case LDP_FR_24:
> r->min.fr = LDP_RANGE_DEF_FR_MIN;
> r->max.fr = LDP_RANGE_DEF_FR_24_MAX;
> break;
> default:
> ldp_free(r);
> return NULL;
> }
> }
> return r;
> }
>
>
>
> -------------------------------------------------------
> In remembrance
> www.osdn.com/911/
> _______________________________________________
> mpls-linux-general mailing list
> mpl...@li...
> https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
--
James R. Leu
|
|
From: Kenny <chi...@it...> - 2002-09-12 04:10:55
|
Could you please tell me now who control the label range and where it
is in the code? Thanks.
On Wed, 11 Sep 2002 23:16:50 -0500
"James R. Leu" <jl...@mi...> wrote:
You caugth me. In fact the label range isn't even used any where in the
code. I'm thinking of getting rid of it. I'm thinking that the label
range should be controlled by the label manager. From ldp-portable's
perspective the label manager is an outside entity and ldp-portable
should know nothing of it.
Anyone care to comment?
Jim
On Thu, Sep 12, 2002 at 10:14:45AM +0800, Kenny wrote:
> Hi Jim,
>
> When I was tracing ldp-portable, I found something strange.
> Why the both min_gen and max_gen of ldp_range are assigned to
> LDP_RANGE_DEF_GEN_MIN?
>
> Please see the "case LDP_GENERIC:" in the following code.
>
> Best Regards,
> Kenny
>
> ---------------------ldp_range.c------------------------------------------------------------------
> ldp_range *ldp_range_create(int32_t label_space, ldp_label_range_type
> type)
> {
> ldp_range *r = (ldp_range *) ldp_malloc(sizeof(ldp_range));
>
> if (r) {
> LDP_LIST_INIT(&r->peer_root, ldp_peer);
> LDP_LIST_INIT(&r->if_root, ldp_if);
> LDP_REFCNT_INIT(r, 0);
>
> r->label_space = label_space;
> r->type = type;
> switch (type) {
> case LDP_GENERIC:
> r->min.gen = LDP_RANGE_DEF_GEN_MIN;
> r->max.gen = LDP_RANGE_DEF_GEN_MIN;
> break;
> case LDP_ATM_VP:
> r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
> r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
> break;
> case LDP_ATM_VC:
> r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
> r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
> break;
> case LDP_ATM_VP_VC:
> r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
> r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
> r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
> r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
> break;
> case LDP_FR_10:
> r->min.fr = LDP_RANGE_DEF_FR_MIN;
> r->max.fr = LDP_RANGE_DEF_FR_10_MAX;
> break;
> case LDP_FR_24:
> r->min.fr = LDP_RANGE_DEF_FR_MIN;
> r->max.fr = LDP_RANGE_DEF_FR_24_MAX;
> break;
> default:
> ldp_free(r);
> return NULL;
> }
> }
> return r;
> }
>
>
>
> -------------------------------------------------------
> In remembrance
> www.osdn.com/911/
> _______________________________________________
> mpls-linux-general mailing list
> mpl...@li...
> https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
--
James R. Leu
-------------------------------------------------------
In remembrance
www.osdn.com/911/
_______________________________________________
mpls-linux-general mailing list
mpl...@li...
https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
|
|
From: James R. L. <jl...@mi...> - 2002-09-12 19:02:19
|
The label allocation is controlled via the mpls porting layer
(in the zebra-ldp case it is in impl_mpls.)
Jim
On Thu, Sep 12, 2002 at 12:04:55PM +0800, Kenny wrote:
>
> Could you please tell me now who control the label range and where it
> is in the code? Thanks.
>
> On Wed, 11 Sep 2002 23:16:50 -0500
> "James R. Leu" <jl...@mi...> wrote:
>
> You caugth me. In fact the label range isn't even used any where in the
> code. I'm thinking of getting rid of it. I'm thinking that the label
> range should be controlled by the label manager. From ldp-portable's
> perspective the label manager is an outside entity and ldp-portable
> should know nothing of it.
>
> Anyone care to comment?
>
> Jim
>
> On Thu, Sep 12, 2002 at 10:14:45AM +0800, Kenny wrote:
> > Hi Jim,
> >
> > When I was tracing ldp-portable, I found something strange.
> > Why the both min_gen and max_gen of ldp_range are assigned to
> > LDP_RANGE_DEF_GEN_MIN?
> >
> > Please see the "case LDP_GENERIC:" in the following code.
> >
> > Best Regards,
> > Kenny
> >
> > ---------------------ldp_range.c------------------------------------------------------------------
> > ldp_range *ldp_range_create(int32_t label_space, ldp_label_range_type
> > type)
> > {
> > ldp_range *r = (ldp_range *) ldp_malloc(sizeof(ldp_range));
> >
> > if (r) {
> > LDP_LIST_INIT(&r->peer_root, ldp_peer);
> > LDP_LIST_INIT(&r->if_root, ldp_if);
> > LDP_REFCNT_INIT(r, 0);
> >
> > r->label_space = label_space;
> > r->type = type;
> > switch (type) {
> > case LDP_GENERIC:
> > r->min.gen = LDP_RANGE_DEF_GEN_MIN;
> > r->max.gen = LDP_RANGE_DEF_GEN_MIN;
> > break;
> > case LDP_ATM_VP:
> > r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
> > r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
> > break;
> > case LDP_ATM_VC:
> > r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
> > r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
> > break;
> > case LDP_ATM_VP_VC:
> > r->min.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MIN;
> > r->max.atm.vpi = LDP_RANGE_DEF_ATM_VPI_MAX;
> > r->min.atm.vci = LDP_RANGE_DEF_ATM_VCI_MIN;
> > r->max.atm.vci = LDP_RANGE_DEF_ATM_VCI_MAX;
> > break;
> > case LDP_FR_10:
> > r->min.fr = LDP_RANGE_DEF_FR_MIN;
> > r->max.fr = LDP_RANGE_DEF_FR_10_MAX;
> > break;
> > case LDP_FR_24:
> > r->min.fr = LDP_RANGE_DEF_FR_MIN;
> > r->max.fr = LDP_RANGE_DEF_FR_24_MAX;
> > break;
> > default:
> > ldp_free(r);
> > return NULL;
> > }
> > }
> > return r;
> > }
> >
> >
> >
> > -------------------------------------------------------
> > In remembrance
> > www.osdn.com/911/
> > _______________________________________________
> > mpls-linux-general mailing list
> > mpl...@li...
> > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
>
> --
> James R. Leu
>
>
> -------------------------------------------------------
> In remembrance
> www.osdn.com/911/
> _______________________________________________
> mpls-linux-general mailing list
> mpl...@li...
> https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
--
James R. Leu
|
|
From: Wayne W. S. <ww...@ho...> - 2002-09-11 17:01:00
|
You also need to setup a lsp from B to A so that the ack packets can find their way back to A. Section 2 of the mplsadm readme file contains an example that construct LSPs between two hosts. On Wed, 11 Sep 2002, [iso-8859-1] Sameer Gharat wrote: > Hello James and all, > > I have set up 1.152 on two Linux boxes running kernel > ver. 2.4.18-3. The two boxes are set up as... > --------- --------- > | A | | B | > --------- --------- > |eth0 |eth0 > |10.3.8.198 |10.3.8.93 > ----------------------------------- > > And the lsp was created b/w A and B using... > On A : > mplsadm2 -A -O -o push:gen:200:set:eth0:ipv4:10.3.8.93 > ip2 route add 10.3.8.93 dev eth0 lsp 0x00000002 > mpls -L eth0:0 > > On B: > mplsadm2 -A -I gen:200:0 > mpls -L eth0:0 > > I believe these commands are enough to create an LSP > between A & B... or at least I hope so. > > Now, when I try to Ping B from A, the packets reach B, > but it seems the packets are not delivered correctly > up to layer 3 on B. The result is that the > acknowledgement doesn't reach back to A and A shows > 100% packet loss. If I try to ping A from B, then the > ping packets reach A and come back to B (taking the > lsp from A to B). But again, the packets aren't > recognized by B and again ping shows 100% packet loss. > Similar thing happens when I tried injecting packets > using nemesis tools. > > Is there any problem with the way I've set up the LSP > or is it some other problem? > > Any help would be greatly appreciated. > > Cheers, > Sameer > > > ________________________________________________________________________ > Want to sell your car? advertise on Yahoo Autos Classifieds. It's Free!! > visit http://in.autos.yahoo.com > > > ------------------------------------------------------- > In remembrance > www.osdn.com/911/ > _______________________________________________ > mpls-linux-general mailing list > mpl...@li... > https://lists.sourceforge.net/lists/listinfo/mpls-linux-general > |