[X.25]: Add call forwarding
Adds call forwarding to X.25, allowing it to operate like an X.25 router. Useful if one needs to manipulate X.25 traffic with tools like tc. This is an update/cleanup based off a patch submitted by Daniel Ferenci a few years ago. Thanks Alan for the feedback. Added the null check to the clones. Moved the skb_clone's into the forwarding functions. Worked ok with Cisco XoT, linux X.25 back to back, and some old NTUs/PADs. Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e610e679dd
commit
95a9dc4390
@ -67,9 +67,18 @@ static int x25_receive_data(struct sk_buff *skb, struct x25_neigh *nb)
|
||||
return x25_rx_call_request(skb, nb, lci);
|
||||
|
||||
/*
|
||||
* Its not a Call Request, nor is it a control frame.
|
||||
* Let caller throw it away.
|
||||
* Its not a Call Request, nor is it a control frame.
|
||||
* Can we forward it?
|
||||
*/
|
||||
|
||||
if (x25_forward_data(lci, nb, skb)) {
|
||||
if (frametype == X25_CLEAR_CONFIRMATION) {
|
||||
x25_clear_forward_by_lci(lci);
|
||||
}
|
||||
kfree_skb(skb);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
x25_transmit_clear_request(nb, lci, 0x0D);
|
||||
*/
|
||||
|
Reference in New Issue
Block a user