X.25: Adds /proc/sys/net/x25/x25_forward to control forwarding.
Subsystems (4)
PATCH 2/3 X.25: Adds /proc/sys/net/x25/x25_forward to control forwarding.
echo "1" > /proc/sys/net/x25/x25_forward
To turn on x25_forwarding, defaults to off
Requires the previous patch.
include/linux/sysctl.h +2 -1
@@ -699,7 +699,8 @@ enum {NET_X25_CALL_REQUEST_TIMEOUT =2 ,NET_X25_RESET_REQUEST_TIMEOUT =3 ,NET_X25_CLEAR_REQUEST_TIMEOUT =4 , - NET_X25_ACK_HOLD_BACK_TIMEOUT=5 +NET_X25_ACK_HOLD_BACK_TIMEOUT =5 , + NET_X25_FORWARD=6 };/* /proc/sys/net/token-ring */
include/net/x25.h +1 -0
@@ -180,6 +180,7 @@ extern int sysctl_x25_call_request_timeextern int sysctl_x25_reset_request_timeout;extern int sysctl_x25_clear_request_timeout;extern int sysctl_x25_ack_holdback_timeout; +extern int sysctl_x25_forward;extern int x25_addr_ntoa (unsigned char *,struct x25_address *,struct x25_address *);
net/x25/af_x25.c +3 -1
@@ -63,6 +63,7 @@ int sysctl_x25_call_request_timeout =int sysctl_x25_reset_request_timeout =X25_DEFAULT_T22 ;int sysctl_x25_clear_request_timeout =X25_DEFAULT_T23 ;int sysctl_x25_ack_holdback_timeout =X25_DEFAULT_T2 ; +int sysctl_x25_forward =0 ;HLIST_HEAD (x25_list);DEFINE_RWLOCK (x25_list_lock);
@@ -884,7 +885,8 @@ int x25_rx_call_request(struct sk_buff **/ if (sk ==NULL ) {skb_push (skb, addr_len +X25_STD_MIN_LEN ); -if (x25_forward_call (&dest_addr, nb, skb, lci) >0 ) +if (sysctl_x25_forward && +x25_forward_call (&dest_addr, nb, skb, lci) >0 ) {/* Call was forwarded, dont process it any more */ kfree_skb (skb);
net/x25/sysctl_net_x25.c +8 -0
@@ -73,6 +73,14 @@ static struct ctl_table x25_table[] = { .extra1 = &min_timer, .extra2 = &max_timer, }, + { + .ctl_name = NET_X25_FORWARD, + .procname = "x25_forward", + .data = &sysctl_x25_forward, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + }, { 0, }, };
Quoted 18 lines · ahendry
echo "1" >
/proc/sys/net/x25/x25_forward
To turn onx25_forwarding, defaults to offinclude/linux/sysctl.h +2
-1@@ -699,7 +699,8 @@ enum {NET_X25_CALL_REQUEST_TIMEOUT =2 ,NET_X25_RESET_REQUEST_TIMEOUT =3 ,NET_X25_CLEAR_REQUEST_TIMEOUT =4 , - NET_X25_ACK_HOLD_BACK_TIMEOUT=5 +NET_X25_ACK_HOLD_BACK_TIMEOUT =5 , + NET_X25_FORWARD=6 };net/x25/sysctl_net_x25.c +0
-0@@ -73,6 +73,14 @@ static struct ctl_table x25_table[] = { .extra1 = &min_timer,
net/x25/sysctl_net_x25.c static struct ctl_table x25_table[] = { · line 83
Quoted 10 lines
net/x25/sysctl_net_x25.c +8
-0.extra2 = &max_timer, }, + { + .ctl_name = NET_X25_FORWARD, + .procname = "x25_forward", + .data = &sysctl_x25_forward, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + },
Reserving binary sysctl number and not defining ->strategy is strange. ;-)
Quoted 15 lines · Alexey Dobriyan
Quoted 13 lines · ahendry
echo "1" >
/proc/sys/net/x25/x25_forward
To turn onx25_forwarding, defaults to offinclude/linux/sysctl.h +2
-1@@ -699,7 +699,8 @@ enum {NET_X25_CALL_REQUEST_TIMEOUT =2 ,NET_X25_RESET_REQUEST_TIMEOUT =3 ,NET_X25_CLEAR_REQUEST_TIMEOUT =4 , - NET_X25_ACK_HOLD_BACK_TIMEOUT=5 +NET_X25_ACK_HOLD_BACK_TIMEOUT =5 , + NET_X25_FORWARD=6 };
Quoted 16 lines
Quoted 4 lines
net/x25/sysctl_net_x25.c +0
-0@@ -73,6 +73,14 @@ static struct ctl_table x25_table[] = { .extra1 = &min_timer,net/x25/sysctl_net_x25.c static struct ctl_table x25_table[] = { · line 83
Quoted 10 lines
net/x25/sysctl_net_x25.c +8
-0.extra2 = &max_timer, }, + { + .ctl_name = NET_X25_FORWARD, + .procname = "x25_forward", + .data = &sysctl_x25_forward, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, + },Reserving binary sysctl number and not defining ->strategy is strange.
Ouch, please, ignore. I misparsed sysctl code.
From: ahendry <[email protected]>
Date: Thu, 08 Feb 2007 10:14:31 +1100
Quoted 5 lines
echo "1" >
/proc/sys/net/x25/x25_forward
To turn onx25_forwarding, defaults to off
Requires the previous patch.Signed-off-by Andrew Hendry <[email protected]>
Applied.