Networking Forums

Networking Forums > Computer Networking > Linux Networking > Multilink PPP Problem

Reply
Thread Tools Display Modes

Multilink PPP Problem

 
 
Kenneth Kassing
Guest
Posts: n/a

 
      11-06-2006, 03:12 PM
I am trying to use pppd to do multilink over several hdlc interfaces.
For my test case, I have two identical units connected back to back.
The link establishes correctly and will pass data. If the master link
is reset for any reason, the master fails to reestablish a connection.

For a test case, I manually disable the link on one side, and then
re-enable it. I tail the syslog for the link i did not reset to wach
the output from pppd. I see that pppd is rejecting the configure
requests for multilink. Here is the error message I see:

sent [IPCP ConfReq id=0x1 <addr 192.168.254.1>]
rcvd [proto=0x3d] 80 00 00 07 80 21 02 01 00 0a
Unsupported protocol 'Multi-Link' (0x3d) received
sent [LCP ProtRej id=0x6 00 3d 80 00 00 07 80 21 02 01 00 0a]
rcvd [proto=0x3d] 40 00 00 08 03 06 c0 a8 fe 01
Unsupported protocol 'Multi-Link' (0x3d) received
sent [LCP ProtRej id=0x8 00 3d 40 00 00 08 03 06 c0 a8 fe 01]
rcvd [proto=0x3d] 40 00 00 0a 03 06 c0 a8 fe 00



I have looked into the code, and found that pppd is looking to match
protocols in "struct protent *protocols[]" table. Multilink does not
have an entry in this table, and therefore will never link correctly.


Any suggestions here?

Thanks

Ken Kassing
 
Reply With Quote
 
 
 
 
Clifford Kite
Guest
Posts: n/a

 
      11-06-2006, 04:08 PM
Kenneth Kassing <(E-Mail Removed)> wrote:
> I am trying to use pppd to do multilink over several hdlc interfaces.
> For my test case, I have two identical units connected back to back.
> The link establishes correctly and will pass data. If the master link
> is reset for any reason, the master fails to reestablish a connection.


> For a test case, I manually disable the link on one side, and then
> re-enable it. I tail the syslog for the link i did not reset to wach
> the output from pppd. I see that pppd is rejecting the configure
> requests for multilink. Here is the error message I see:


> sent [IPCP ConfReq id=0x1 <addr 192.168.254.1>]
> rcvd [proto=0x3d] 80 00 00 07 80 21 02 01 00 0a
> Unsupported protocol 'Multi-Link' (0x3d) received
> sent [LCP ProtRej id=0x6 00 3d 80 00 00 07 80 21 02 01 00 0a]
> rcvd [proto=0x3d] 40 00 00 08 03 06 c0 a8 fe 01
> Unsupported protocol 'Multi-Link' (0x3d) received
> sent [LCP ProtRej id=0x8 00 3d 40 00 00 08 03 06 c0 a8 fe 01]
> rcvd [proto=0x3d] 40 00 00 0a 03 06 c0 a8 fe 00




> I have looked into the code, and found that pppd is looking to match
> protocols in "struct protent *protocols[]" table. Multilink does not
> have an entry in this table, and therefore will never link correctly.


That's odd. Here, in main.c of pppd 2.4.4, this

Multi-Link

is in "struct protocol_list" there, and pppd looks in protocol_list for
protocol names. Pppd only prints the name if it can be found, and that
particular message isn't anywhere else in the code:

~$ grep 'Unsupported protocol' pppd/*.[hc]
pppd/main.c: warn("Unsupported protocol '%s' (0x%x) received", pname,
protocol);
pppd/main.c: warn("Unsupported protocol 0x%x received", protocol);

> Any suggestions here?


Upgrade? Compile MP into pppd?

--
Clifford Kite
/* Bluffing in a poker game can win big; bluffing in a newsgroup
only attracts sharks. */
 
Reply With Quote
 
Kenneth Kassing
Guest
Posts: n/a

 
      11-06-2006, 05:48 PM
Thanks for the reply.

Please note, I am running 2.4.4 and Multilink is built into the code. I
can establish an initial Multilink connection, the problem occurs when
the remote link goes down and then comes back. (The remote link is also
ppp 2.4.4)

Yes, "Multi-Link" is listed in protocol_list which explains why it is
printing there. I am actually referring to what happens a few lines above.

It loops over a table of structures for each protocol looking for a
match. It only reaches the print statement because there is not a match
for Multilink at this point.

----------------------------------------------
for (i = 0; (protp = protocols[i]) != NULL; ++i) {
if (protp->protocol == protocol && protp->enabled_flag) {
...
}
...
}
----------------------------------------------

If you look near loine 270 in main.c, you will see where this protocol
list is created. It is composed of pointers to structures defined in
the file for each of the protocols. Multilink does not provide one of
these structures.

----------------------------------------------
/*
* PPP Data Link Layer "protocol" table.
* One entry per supported protocol.
* The last entry must be NULL.
*/
struct protent *protocols[] = {
----------------------------------------------

Thanks
-Ken

Clifford Kite wrote:
> Kenneth Kassing <(E-Mail Removed)> wrote:
>> I am trying to use pppd to do multilink over several hdlc interfaces.
>> For my test case, I have two identical units connected back to back.
>> The link establishes correctly and will pass data. If the master link
>> is reset for any reason, the master fails to reestablish a connection.

>
>> For a test case, I manually disable the link on one side, and then
>> re-enable it. I tail the syslog for the link i did not reset to wach
>> the output from pppd. I see that pppd is rejecting the configure
>> requests for multilink. Here is the error message I see:

>
>> sent [IPCP ConfReq id=0x1 <addr 192.168.254.1>]
>> rcvd [proto=0x3d] 80 00 00 07 80 21 02 01 00 0a
>> Unsupported protocol 'Multi-Link' (0x3d) received
>> sent [LCP ProtRej id=0x6 00 3d 80 00 00 07 80 21 02 01 00 0a]
>> rcvd [proto=0x3d] 40 00 00 08 03 06 c0 a8 fe 01
>> Unsupported protocol 'Multi-Link' (0x3d) received
>> sent [LCP ProtRej id=0x8 00 3d 40 00 00 08 03 06 c0 a8 fe 01]
>> rcvd [proto=0x3d] 40 00 00 0a 03 06 c0 a8 fe 00

>
>
>
>> I have looked into the code, and found that pppd is looking to match
>> protocols in "struct protent *protocols[]" table. Multilink does not
>> have an entry in this table, and therefore will never link correctly.

>
> That's odd. Here, in main.c of pppd 2.4.4, this
>
> Multi-Link
>
> is in "struct protocol_list" there, and pppd looks in protocol_list for
> protocol names. Pppd only prints the name if it can be found, and that
> particular message isn't anywhere else in the code:
>
> ~$ grep 'Unsupported protocol' pppd/*.[hc]
> pppd/main.c: warn("Unsupported protocol '%s' (0x%x) received", pname,
> protocol);
> pppd/main.c: warn("Unsupported protocol 0x%x received", protocol);
>
>> Any suggestions here?

>
> Upgrade? Compile MP into pppd?
>

 
Reply With Quote
 
Clifford Kite
Guest
Posts: n/a

 
      11-06-2006, 08:21 PM
Kenneth Kassing <(E-Mail Removed)> wrote:
> Thanks for the reply.


> Please note, I am running 2.4.4 and Multilink is built into the code. I
> can establish an initial Multilink connection, the problem occurs when
> the remote link goes down and then comes back. (The remote link is also
> ppp 2.4.4)


> Yes, "Multi-Link" is listed in protocol_list which explains why it is
> printing there. I am actually referring to what happens a few lines above.


> It loops over a table of structures for each protocol looking for a
> match. It only reaches the print statement because there is not a match
> for Multilink at this point.


> ----------------------------------------------
> for (i = 0; (protp = protocols[i]) != NULL; ++i) {
> if (protp->protocol == protocol && protp->enabled_flag) {
> ...
> }
> ...
> }
> ----------------------------------------------


Right. But I _knew_ that some version of pppd recognized MP when it
was detected. You've identified a bug in 2.4.4. In versions 2.4.3
and 2.4.2 main.c had different code which included

#ifdef HAVE_MULTILINK
mp_check_options();
#endif

Be aware that version 2.4.3 has a bug that reports "conflicting options"
and then quits whenever the active-filter option is used even though no
conflicts exist.

--
Clifford Kite
/* I hear and I forget. I see and I remember. I do and I understand.
--Confucius, 551-479 BC */
 
Reply With Quote
 
Clifford Kite
Guest
Posts: n/a

 
      11-06-2006, 08:43 PM
Clifford Kite <(E-Mail Removed)> wrote:

> Right. But I _knew_ that some version of pppd recognized MP when it
> was detected. You've identified a bug in 2.4.4. In versions 2.4.3
> and 2.4.2 main.c had different code which included


> #ifdef HAVE_MULTILINK
> mp_check_options();
> #endif


Belay that, it does have this code - just in a different section
(shows just how C-knowledgeable I am).

It still has to be a bug. You're doing something most people don't.
You can report it on the Linux PPP mailing list and hope someone
pays attention. Or I will if you'd rather not.

--
Clifford Kite
/* "Be liberal in what you accept, and conservative in what you send"
RFC 1122 */
 
Reply With Quote
 
Kenneth Kassing
Guest
Posts: n/a

 
      11-13-2006, 06:03 PM
Hi,
I have tried reporting this to the linux-ppp mailing list, and so far
have not got any response. I have received some response from the
maintainer, but not really at the level I would like. Any other
suggestions for people to contact?

Also, when you say I am not doing what people normally do, do you mean
this is not how Multilink is commonly used? Or that Multilink itself is
not commonly used?

In what way would you say that Multilink is commonly used? It may be
possible for me to experiment with another application, and observer the
results.

Thanks
-Ken

Clifford Kite wrote:
> Clifford Kite <(E-Mail Removed)> wrote:
>
>> Right. But I _knew_ that some version of pppd recognized MP when it
>> was detected. You've identified a bug in 2.4.4. In versions 2.4.3
>> and 2.4.2 main.c had different code which included

>
>> #ifdef HAVE_MULTILINK
>> mp_check_options();
>> #endif

>
> Belay that, it does have this code - just in a different section
> (shows just how C-knowledgeable I am).
>
> It still has to be a bug. You're doing something most people don't.
> You can report it on the Linux PPP mailing list and hope someone
> pays attention. Or I will if you'd rather not.
>

 
Reply With Quote
 
Clifford Kite
Guest
Posts: n/a

 
      11-14-2006, 07:23 PM
Kenneth Kassing <(E-Mail Removed)> wrote:
> Hi,
> I have tried reporting this to the linux-ppp mailing list, and so far
> have not got any response. I have received some response from the
> maintainer, but not really at the level I would like. Any other
> suggestions for people to contact?


No, I had thought that perhaps a pppd maintainer would be able to help.

> Also, when you say I am not doing what people normally do, do you mean
> this is not how Multilink is commonly used? Or that Multilink itself is
> not commonly used?


Yes. I'd expect stress testing MP to be rare.

And Yes. There may be some areas where MP is commonly used but I've
never had an occasion to actually use it. An ISP I once used was
configured to offer MP but when I inquired about actually using it
the answer was a resounding NO.

> In what way would you say that Multilink is commonly used? It may be
> possible for me to experiment with another application, and observer the
> results.


In truth, I can't think of any way that MP is commonly used.

I'm now unsure as to whether the "Unsupported" is a bug or simply an
implementation choice. The pppd for the remaining link (the master)
may have disabled multilink when the only other link was taken down.
RFC 1990 leaves many things to the discretion of the implementor, and
the log showed a pppd apparently (re-)negotiating IPCP.

--
Clifford Kite
/* 97.3% of all statistics are made up. */
 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
ppp multilink not lstandish Linux Networking 6 07-13-2007 06:32 AM
multilink ppp for T1s lehman.alan@gmail.com Linux Networking 0 02-26-2006 04:16 PM
multilink linux spaceloop@gmail.com Linux Networking 1 05-17-2005 04:18 AM
Multilink PPP dies on LCP reconfigure John Hardin Linux Networking 0 11-04-2004 11:01 PM
Using two modems (Multilink) Hazem Farid Windows Networking 3 09-09-2003 02:20 AM



1 2 3 4 5 6 7 8 9 10 11