|
@@ -45,15 +45,9 @@ container_of(DATARMNET6e4292679f,struct DATARMNET4f49486833,DATARMNET9f31ce5d2d)
|
|
|
;hash_del_rcu(&DATARMNET63b1a086d5->DATARMNETe8608dd267);kfree_rcu(
|
|
|
DATARMNET63b1a086d5,DATARMNET28bfe9e6ad);spin_unlock_irqrestore(&
|
|
|
DATARMNET820642743b,DATARMNETfb0677cc3c);return HRTIMER_NORESTART;}static
|
|
|
-rx_handler_result_t DATARMNET68fe094884(struct sk_buff**DATARMNET89946cec52){
|
|
|
-struct DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct DATARMNET4f49486833*
|
|
|
-DATARMNET63b1a086d5;struct sk_buff*DATARMNET543491eb0f=*DATARMNET89946cec52;
|
|
|
-unsigned long DATARMNETfb0677cc3c;if(!DATARMNET543491eb0f||DATARMNET543491eb0f->
|
|
|
-pkt_type==PACKET_LOOPBACK)goto DATARMNETbf4095f79e;if(DATARMNET543491eb0f->dev&&
|
|
|
+rx_handler_result_t DATARMNETc9ed97754a(struct sk_buff*DATARMNET543491eb0f){if(
|
|
|
+DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IP))&&!(
|
|
|
strncmp(DATARMNET543491eb0f->dev->name,
|
|
|
-"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))nf_ct_set(
|
|
|
-DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if((DATARMNET543491eb0f->protocol==
|
|
|
-htons(ETH_P_IP))&&!(strncmp(DATARMNET543491eb0f->dev->name,
|
|
|
"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))){struct iphdr*
|
|
|
DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct net_device*DATARMNET813ca18d06=
|
|
|
NULL;struct flowi4 DATARMNET099aa93adc={};struct rtable*DATARMNET066b8bd537;
|
|
@@ -79,8 +73,8 @@ DATARMNETc1174a0f45;}DATARMNET268a8314cf=dev_queue_xmit(DATARMNET543491eb0f);
|
|
|
neigh_release(DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==
|
|
|
NET_XMIT_SUCCESS||DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(
|
|
|
DATARMNETc1b437465b);}else{DATARMNET17f6bc1be5(DATARMNET43a65c0be7);}return
|
|
|
-RX_HANDLER_CONSUMED;}else if((DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6))
|
|
|
-&&!(strncmp(DATARMNET543491eb0f->dev->name,
|
|
|
+RX_HANDLER_CONSUMED;}else if(DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->
|
|
|
+protocol==htons(ETH_P_IPV6))&&!(strncmp(DATARMNET543491eb0f->dev->name,
|
|
|
"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))){struct
|
|
|
ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;struct net_device*
|
|
|
DATARMNET813ca18d06=NULL;struct flowi6 DATARMNET8fbe36a2fa={};struct neighbour*
|
|
@@ -106,10 +100,19 @@ DATARMNETc1174a0f45;}DATARMNET268a8314cf=dev_queue_xmit(DATARMNET543491eb0f);
|
|
|
neigh_release(DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==
|
|
|
NET_XMIT_SUCCESS||DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(
|
|
|
DATARMNET04311361a2);}else{DATARMNET17f6bc1be5(DATARMNET13bbe5f5c5);}return
|
|
|
-RX_HANDLER_CONSUMED;}if(DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct
|
|
|
-iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9=
|
|
|
-skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*
|
|
|
-DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto
|
|
|
+RX_HANDLER_CONSUMED;}return RX_HANDLER_PASS;DATARMNETc1174a0f45:kfree_skb(
|
|
|
+DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}static rx_handler_result_t
|
|
|
+DATARMNET68fe094884(struct sk_buff**DATARMNET89946cec52){struct
|
|
|
+DATARMNET0ca9d8ead7 DATARMNETa76763310b={};struct DATARMNET4f49486833*
|
|
|
+DATARMNET63b1a086d5;struct sk_buff*DATARMNET543491eb0f=*DATARMNET89946cec52;
|
|
|
+unsigned long DATARMNETfb0677cc3c;if(!DATARMNET543491eb0f||DATARMNET543491eb0f->
|
|
|
+pkt_type==PACKET_LOOPBACK)return RX_HANDLER_PASS;if(DATARMNET543491eb0f->dev&&
|
|
|
+strncmp(DATARMNET543491eb0f->dev->name,
|
|
|
+"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61\x30",IFNAMSIZ))nf_ct_set(
|
|
|
+DATARMNET543491eb0f,NULL,IP_CT_UNTRACKED);if(DATARMNET543491eb0f->protocol==
|
|
|
+htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;
|
|
|
+DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
|
|
|
+sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto
|
|
|
DATARMNETbf4095f79e;if(DATARMNET86f1f2cdc9->protocol==IPPROTO_TCP)goto
|
|
|
DATARMNET9b3d23a43b;if(DATARMNET86f1f2cdc9->protocol!=IPPROTO_ICMP)goto
|
|
|
DATARMNETbf4095f79e;DATARMNETa76763310b.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9
|
|
@@ -148,17 +151,17 @@ DATARMNET299a8a08b5;hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,
|
|
|
DATARMNET5da8c68c19,HRTIMER_MODE_REL);hash_add_rcu(DATARMNET5413d6f8ec,&
|
|
|
DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
|
|
|
);spin_unlock_irqrestore(&DATARMNET820642743b,DATARMNETfb0677cc3c);
|
|
|
-DATARMNETbf4095f79e:return RX_HANDLER_PASS;DATARMNET9b3d23a43b:
|
|
|
-DATARMNET7ca470d54b(DATARMNET543491eb0f,TCP_FLAG_SYN);return RX_HANDLER_PASS;
|
|
|
-DATARMNETc1174a0f45:kfree_skb(DATARMNET543491eb0f);return RX_HANDLER_CONSUMED;}
|
|
|
-static void DATARMNETbc6bd11f47(struct net_device*DATARMNET00dcb79bc4){struct
|
|
|
-DATARMNET4f49486833*DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();
|
|
|
-hash_for_each_rcu(DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,
|
|
|
-DATARMNETe8608dd267){if(DATARMNET63b1a086d5->DATARMNET7ed5754a5c.
|
|
|
-DATARMNET57656f6f2f==DATARMNET00dcb79bc4)hrtimer_cancel(&DATARMNET63b1a086d5->
|
|
|
-DATARMNET9f31ce5d2d);}rcu_read_unlock();}static int DATARMNET81ab4de243(struct
|
|
|
-notifier_block*DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void*data){
|
|
|
-struct net_device*DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(data);if(!
|
|
|
+DATARMNETbf4095f79e:return DATARMNETc9ed97754a(DATARMNET543491eb0f);
|
|
|
+DATARMNET9b3d23a43b:DATARMNET7ca470d54b(DATARMNET543491eb0f,TCP_FLAG_SYN);return
|
|
|
+ DATARMNETc9ed97754a(DATARMNET543491eb0f);}static void DATARMNETbc6bd11f47(
|
|
|
+struct net_device*DATARMNET00dcb79bc4){struct DATARMNET4f49486833*
|
|
|
+DATARMNET63b1a086d5;int DATARMNET5c2fd31d7b;rcu_read_lock();hash_for_each_rcu(
|
|
|
+DATARMNET5413d6f8ec,DATARMNET5c2fd31d7b,DATARMNET63b1a086d5,DATARMNETe8608dd267)
|
|
|
+{if(DATARMNET63b1a086d5->DATARMNET7ed5754a5c.DATARMNET57656f6f2f==
|
|
|
+DATARMNET00dcb79bc4)hrtimer_cancel(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d);}
|
|
|
+rcu_read_unlock();}static int DATARMNET81ab4de243(struct notifier_block*
|
|
|
+DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void*data){struct
|
|
|
+net_device*DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(data);if(!
|
|
|
DATARMNET00dcb79bc4||strncmp(DATARMNET00dcb79bc4->name,
|
|
|
"\x72\x5f\x72\x6d\x6e\x65\x74\x5f\x64\x61\x74\x61",(0xd19+238-0xdfb)))return
|
|
|
NOTIFY_DONE;switch(DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:
|