rmnet_wlan: I0062b2fbfcfbd9d00c72f05d54e72e89b1bcdffa
Updates the module to version I0062b2fbfcfbd9d00c72f05d54e72e89b1bcdffa Change-Id: I0062b2fbfcfbd9d00c72f05d54e72e89b1bcdffa Signed-off-by: Elmer Melendez <quic_emelende@quicinc.com>
This commit is contained in:
@@ -16,27 +16,37 @@ struct DATARMNETb89ecedefc{union{__be16 DATARMNETf0d9de7e2f;__be32
|
||||
DATARMNET906b2ee561;};u8 DATARMNET0d956cc77a;u8 DATARMNET4924e79411;};struct
|
||||
DATARMNET8d3c2559ca{struct net_device*DATARMNET57656f6f2f;union{__be32
|
||||
DATARMNET0dc14167a1;struct in6_addr DATARMNET5700daac01;};u8 DATARMNET0d956cc77a
|
||||
;};void DATARMNET7ca470d54b(struct sk_buff*DATARMNET543491eb0f,u32
|
||||
DATARMNET1464100e7a);int DATARMNET4899053671(struct sk_buff*DATARMNET543491eb0f,
|
||||
struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);bool DATARMNET4eafcdee07(struct
|
||||
;u8 DATARMNET9954a624ac;};struct DATARMNET41b426061d{struct hlist_node
|
||||
DATARMNETe8608dd267;struct rcu_head DATARMNET28bfe9e6ad;struct notifier_block
|
||||
DATARMNET272c159b3c;char DATARMNET852d4d00e2[IFNAMSIZ];struct
|
||||
DATARMNET8d3c2559ca DATARMNET7ed5754a5c;};enum{DATARMNET356f2a237e,
|
||||
DATARMNET45ee632553,DATARMNET9bfbc31cd6,DATARMNETdcafdec32a,};void
|
||||
DATARMNET7ca470d54b(struct sk_buff*DATARMNET543491eb0f,u32 DATARMNET1464100e7a);
|
||||
int DATARMNET4899053671(struct sk_buff*DATARMNET543491eb0f,struct
|
||||
DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e);bool DATARMNET4eafcdee07(struct
|
||||
DATARMNETb89ecedefc*DATARMNET3396919a68);int DATARMNET53f12a0f7d(struct
|
||||
DATARMNETb89ecedefc*DATARMNETcadc2ef9aa,u32 DATARMNETef77661260,struct genl_info
|
||||
*DATARMNET54338da2ff);int DATARMNET07f6485c9b(struct DATARMNETb89ecedefc*
|
||||
DATARMNETcadc2ef9aa,u32 DATARMNETef77661260,struct genl_info*DATARMNET54338da2ff
|
||||
);int DATARMNET97b2388e63(char*DATARMNET852d4d00e2,struct genl_info*
|
||||
DATARMNET54338da2ff);int DATARMNETa903cd5994(char*DATARMNET852d4d00e2,struct
|
||||
genl_info*DATARMNET54338da2ff);int DATARMNET947eb110d2(struct
|
||||
genl_info*DATARMNET54338da2ff);int DATARMNET92e5468fc5(char*DATARMNET852d4d00e2,
|
||||
struct genl_info*DATARMNET54338da2ff);int DATARMNET9d7bb9a63d(char*
|
||||
DATARMNET852d4d00e2,struct genl_info*DATARMNET54338da2ff);int
|
||||
DATARMNET947eb110d2(struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct
|
||||
genl_info*DATARMNET54338da2ff);int DATARMNETb8b35fdc18(struct
|
||||
DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct genl_info*DATARMNET54338da2ff);
|
||||
int DATARMNETb8b35fdc18(struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct
|
||||
genl_info*DATARMNET54338da2ff);int DATARMNET8d5a5a7047(__be16
|
||||
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff);int
|
||||
DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct genl_info*
|
||||
DATARMNET54338da2ff);bool DATARMNETa8b2566e6a(struct sk_buff*DATARMNET543491eb0f
|
||||
,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int DATARMNET611d08d671);int
|
||||
DATARMNET59b8376224(__be16 DATARMNETf0d9de7e2f,struct genl_info*
|
||||
DATARMNET54338da2ff);int DATARMNET0b12e969c5(__be16 DATARMNETf0d9de7e2f,struct
|
||||
genl_info*DATARMNET54338da2ff);bool DATARMNET0a4704e5e0(struct
|
||||
DATARMNETb89ecedefc*DATARMNET3396919a68);int DATARMNET078f6bd384(void);void
|
||||
DATARMNETfae36afa03(void);char*DATARMNET934406764d(void);
|
||||
int DATARMNET8d5a5a7047(__be16 DATARMNETf0d9de7e2f,struct genl_info*
|
||||
DATARMNET54338da2ff);int DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct
|
||||
genl_info*DATARMNET54338da2ff);bool DATARMNETa8b2566e6a(struct sk_buff*
|
||||
DATARMNET543491eb0f,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int
|
||||
DATARMNET611d08d671);int DATARMNET59b8376224(__be16 DATARMNETf0d9de7e2f,struct
|
||||
genl_info*DATARMNET54338da2ff);int DATARMNET0b12e969c5(__be16
|
||||
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff);bool
|
||||
DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*DATARMNET3396919a68);int
|
||||
DATARMNET078f6bd384(void);void DATARMNETfae36afa03(void);char*
|
||||
DATARMNET934406764d(void);char*DATARMNETe447822105(void);struct
|
||||
DATARMNET41b426061d*DATARMNETcc0a01df2a(struct DATARMNET8d3c2559ca*
|
||||
DATARMNET54338da2ff);
|
||||
#endif
|
||||
|
||||
|
@@ -16,6 +16,7 @@
|
||||
#include <linux/hrtimer.h>
|
||||
#include <net/ip.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/netfilter/nf_conntrack.h>
|
||||
#include "rmnet_wlan.h"
|
||||
#include "rmnet_wlan_connection.h"
|
||||
@@ -46,27 +47,26 @@ 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 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))){struct iphdr*
|
||||
DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct net_device*DATARMNET813ca18d06=
|
||||
NULL;struct flowi4 DATARMNET099aa93adc={};struct rtable*DATARMNET066b8bd537;
|
||||
struct neighbour*DATARMNET3f85732c70;int DATARMNET268a8314cf=(0xd2d+202-0xdf7);
|
||||
DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
|
||||
sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9){
|
||||
DATARMNET17f6bc1be5(DATARMNETd1c349b9fc);goto DATARMNETc1174a0f45;}
|
||||
DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,DATARMNET934406764d());if(!
|
||||
DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNETfa4b3dd44a);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=DATARMNET813ca18d06;memcpy(&
|
||||
DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->saddr,sizeof(__be32));memcpy(&
|
||||
DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->daddr,sizeof(__be32));
|
||||
DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->ifindex;DATARMNET099aa93adc.
|
||||
flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=ip_route_output_key(&
|
||||
init_net,&DATARMNET099aa93adc);if(IS_ERR(DATARMNET066b8bd537)){
|
||||
DATARMNET17f6bc1be5(DATARMNET72ab5e86d8);goto DATARMNETc1174a0f45;}
|
||||
DATARMNET3f85732c70=dst_neigh_lookup(&DATARMNET066b8bd537->dst,&
|
||||
DATARMNET099aa93adc.daddr);ip_rt_put(DATARMNET066b8bd537);if(!
|
||||
rx_handler_result_t DATARMNETc9ed97754a(struct sk_buff*DATARMNET543491eb0f,
|
||||
uint8_t DATARMNET1a901c3d09){if(DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->
|
||||
protocol==htons(ETH_P_IP))&&DATARMNET1a901c3d09==DATARMNET9bfbc31cd6){struct
|
||||
iphdr*DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct net_device*
|
||||
DATARMNET813ca18d06=NULL;struct flowi4 DATARMNET099aa93adc={};struct rtable*
|
||||
DATARMNET066b8bd537;struct neighbour*DATARMNET3f85732c70;int DATARMNET268a8314cf
|
||||
=(0xd2d+202-0xdf7);DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,
|
||||
(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!
|
||||
DATARMNET86f1f2cdc9){DATARMNET17f6bc1be5(DATARMNET15454f969d);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,
|
||||
DATARMNET934406764d());if(!DATARMNET813ca18d06){DATARMNET17f6bc1be5(
|
||||
DATARMNETfa4b3dd44a);goto DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=
|
||||
DATARMNET813ca18d06;memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
|
||||
saddr,sizeof(__be32));memcpy(&DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->
|
||||
daddr,sizeof(__be32));DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->
|
||||
ifindex;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537
|
||||
=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET72ab5e86d8);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET3f85732c70=dst_neigh_lookup(&DATARMNET066b8bd537->
|
||||
dst,&DATARMNET099aa93adc.daddr);ip_rt_put(DATARMNET066b8bd537);if(!
|
||||
DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNET0e6bd55b8b);goto
|
||||
DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev||!
|
||||
DATARMNET3f85732c70->dev->header_ops){DATARMNET17f6bc1be5(DATARMNET64aecaa865);
|
||||
@@ -76,26 +76,24 @@ DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==NET_XMIT_SUCCESS||
|
||||
DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(DATARMNETc1b437465b);}
|
||||
else{DATARMNET17f6bc1be5(DATARMNET43a65c0be7);}return 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*
|
||||
DATARMNET3f85732c70;struct dst_entry*dst;int DATARMNET268a8314cf=
|
||||
(0xd2d+202-0xdf7);DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,
|
||||
(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!
|
||||
DATARMNETbf55123e5b){DATARMNET17f6bc1be5(DATARMNET72f4fdd48a);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,
|
||||
DATARMNET934406764d());if(!DATARMNET813ca18d06){DATARMNET17f6bc1be5(
|
||||
DATARMNET9cff15f94d);goto DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=
|
||||
DATARMNET813ca18d06;memcpy(&DATARMNET8fbe36a2fa.saddr,&DATARMNETbf55123e5b->
|
||||
saddr,sizeof(struct in6_addr));memcpy(&DATARMNET8fbe36a2fa.daddr,&
|
||||
DATARMNETbf55123e5b->daddr,sizeof(struct in6_addr));DATARMNET8fbe36a2fa.
|
||||
flowi6_oif=DATARMNET813ca18d06->ifindex;DATARMNET8fbe36a2fa.flowi6_flags=
|
||||
FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->ipv6_dst_lookup_flow(&init_net,NULL,&
|
||||
DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){DATARMNET17f6bc1be5(
|
||||
DATARMNETbf6e6853f9);goto DATARMNETc1174a0f45;}DATARMNET3f85732c70=
|
||||
dst_neigh_lookup(dst,&DATARMNET8fbe36a2fa.daddr);dst_release(dst);if(!
|
||||
DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNETa0da722329);goto
|
||||
&&DATARMNET1a901c3d09==DATARMNET9bfbc31cd6){struct ipv6hdr*DATARMNETbf55123e5b,
|
||||
DATARMNETcf1d9e2c1e;struct net_device*DATARMNET813ca18d06=NULL;struct flowi6
|
||||
DATARMNET8fbe36a2fa={};struct neighbour*DATARMNET3f85732c70;struct dst_entry*dst
|
||||
;int DATARMNET268a8314cf=(0xd2d+202-0xdf7);DATARMNETbf55123e5b=
|
||||
skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*
|
||||
DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b){
|
||||
DATARMNET17f6bc1be5(DATARMNET72f4fdd48a);goto DATARMNETc1174a0f45;}
|
||||
DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,DATARMNET934406764d());if(!
|
||||
DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNET9cff15f94d);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET543491eb0f->dev=DATARMNET813ca18d06;memcpy(&
|
||||
DATARMNET8fbe36a2fa.saddr,&DATARMNETbf55123e5b->saddr,sizeof(struct in6_addr));
|
||||
memcpy(&DATARMNET8fbe36a2fa.daddr,&DATARMNETbf55123e5b->daddr,sizeof(struct
|
||||
in6_addr));DATARMNET8fbe36a2fa.flowi6_oif=DATARMNET813ca18d06->ifindex;
|
||||
DATARMNET8fbe36a2fa.flowi6_flags=FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->
|
||||
ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
|
||||
DATARMNET17f6bc1be5(DATARMNETbf6e6853f9);goto DATARMNETc1174a0f45;}
|
||||
DATARMNET3f85732c70=dst_neigh_lookup(dst,&DATARMNET8fbe36a2fa.daddr);dst_release
|
||||
(dst);if(!DATARMNET3f85732c70){DATARMNET17f6bc1be5(DATARMNETa0da722329);goto
|
||||
DATARMNETc1174a0f45;}if(DATARMNET3f85732c70->dev!=DATARMNET543491eb0f->dev||!
|
||||
DATARMNET3f85732c70->dev->header_ops){DATARMNET17f6bc1be5(DATARMNET729e252fb9);
|
||||
neigh_release(DATARMNET3f85732c70);goto DATARMNETc1174a0f45;}DATARMNET268a8314cf
|
||||
@@ -103,43 +101,73 @@ neigh_release(DATARMNET3f85732c70);goto DATARMNETc1174a0f45;}DATARMNET268a8314cf
|
||||
DATARMNET3f85732c70);if(likely(DATARMNET268a8314cf==NET_XMIT_SUCCESS||
|
||||
DATARMNET268a8314cf==NET_XMIT_CN)){DATARMNET17f6bc1be5(DATARMNET04311361a2);}
|
||||
else{DATARMNET17f6bc1be5(DATARMNET13bbe5f5c5);}return 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 flowi6
|
||||
DATARMNET8fbe36a2fa={};struct dst_entry*dst,*dst_xfrm;struct rtable*
|
||||
if(DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IP))&&
|
||||
DATARMNET1a901c3d09==DATARMNET45ee632553){struct iphdr*DATARMNET86f1f2cdc9,
|
||||
DATARMNETbf6548198e;struct net_device*DATARMNET813ca18d06=NULL;struct flowi4
|
||||
DATARMNET099aa93adc={};struct dst_entry*DATARMNETb5af46179c;struct rtable*
|
||||
DATARMNET066b8bd537;struct net_device*DATARMNET39542b437e=NULL;
|
||||
DATARMNETbf55123e5b=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
|
||||
sizeof(*DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b){
|
||||
DATARMNET17f6bc1be5(DATARMNET6b0ed53aab);goto DATARMNETc1174a0f45;}memcpy(&
|
||||
DATARMNET8fbe36a2fa.saddr,&DATARMNETbf55123e5b->saddr,sizeof(struct in6_addr));
|
||||
memcpy(&DATARMNET8fbe36a2fa.daddr,&DATARMNETbf55123e5b->daddr,sizeof(struct
|
||||
in6_addr));dst=ipv6_stub->ipv6_dst_lookup_flow(&init_net,NULL,&
|
||||
DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){DATARMNET17f6bc1be5(
|
||||
DATARMNET22ac945cae);DATARMNET39542b437e=dev_get_by_name_rcu(&init_net,
|
||||
"\x64\x75\x6d\x6d\x79\x30");if(!DATARMNET39542b437e){DATARMNET17f6bc1be5(
|
||||
DATARMNETf326b7c906);goto DATARMNETc1174a0f45;}DATARMNET8fbe36a2fa.flowi6_oif=
|
||||
DATARMNET39542b437e->ifindex;DATARMNET8fbe36a2fa.flowi6_flags=
|
||||
FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->ipv6_dst_lookup_flow(&init_net,NULL,&
|
||||
DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){DATARMNET17f6bc1be5(
|
||||
DATARMNET544d78ede7);goto DATARMNET74b365f6cc;}}dst_xfrm=xfrm_lookup(&init_net,
|
||||
dst,flowi6_to_flowi(&DATARMNET8fbe36a2fa),NULL,(0xd2d+202-0xdf7));
|
||||
DATARMNET066b8bd537=(struct rtable*)dst_xfrm;if(IS_ERR(DATARMNET066b8bd537)){
|
||||
DATARMNET17f6bc1be5(DATARMNET97b44d0c09);goto DATARMNETc1174a0f45;}skb_dst_set(
|
||||
DATARMNET543491eb0f,dst_xfrm);dst_output(&init_net,NULL,DATARMNET543491eb0f);
|
||||
DATARMNET17f6bc1be5(DATARMNETf954265acb);return RX_HANDLER_CONSUMED;}else 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))){struct iphdr*
|
||||
DATARMNET86f1f2cdc9,DATARMNETbf6548198e;struct flowi4 DATARMNET099aa93adc={};
|
||||
struct rtable*DATARMNET066b8bd537;struct dst_entry*dst_xfrm;struct net_device*
|
||||
DATARMNET39542b437e=NULL;DATARMNET86f1f2cdc9=skb_header_pointer(
|
||||
DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),&
|
||||
DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9){DATARMNET17f6bc1be5(
|
||||
DATARMNET15454f969d);goto DATARMNETc1174a0f45;}memcpy(&DATARMNET099aa93adc.saddr
|
||||
,&DATARMNET86f1f2cdc9->saddr,sizeof(__be32));memcpy(&DATARMNET099aa93adc.daddr,&
|
||||
DATARMNET86f1f2cdc9->daddr,sizeof(__be32));DATARMNET066b8bd537=
|
||||
DATARMNET86f1f2cdc9=skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),
|
||||
sizeof(*DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9){
|
||||
DATARMNET17f6bc1be5(DATARMNET7803c877c0);goto DATARMNETc1174a0f45;}
|
||||
DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,DATARMNETe447822105());if(!
|
||||
DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNET0978ff973f);goto
|
||||
DATARMNETc1174a0f45;}memcpy(&DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->
|
||||
daddr,sizeof(__be32));DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->
|
||||
ifindex;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537
|
||||
=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET666fc9a664);
|
||||
DATARMNET39542b437e=dev_get_by_name_rcu(&init_net,"\x64\x75\x6d\x6d\x79\x30");if
|
||||
(!DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNET521b065310);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET099aa93adc.flowi4_oif=DATARMNET39542b437e->ifindex
|
||||
;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=
|
||||
ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET8a15bcdcc7);goto
|
||||
DATARMNET74b365f6cc;}}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
|
||||
saddr,sizeof(__be32));DATARMNETb5af46179c=xfrm_lookup(&init_net,&
|
||||
DATARMNET066b8bd537->dst,flowi4_to_flowi(&DATARMNET099aa93adc),NULL,
|
||||
(0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*)DATARMNETb5af46179c;if(
|
||||
IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNETddb1bc27cb);goto
|
||||
DATARMNETc1174a0f45;}skb_dst_set(DATARMNET543491eb0f,DATARMNETb5af46179c);
|
||||
dst_output(&init_net,NULL,DATARMNET543491eb0f);DATARMNET17f6bc1be5(
|
||||
DATARMNETc730640bf7);return RX_HANDLER_CONSUMED;}else if(DATARMNET543491eb0f->
|
||||
dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6))&&DATARMNET1a901c3d09==
|
||||
DATARMNET45ee632553){struct ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;
|
||||
struct flowi6 DATARMNET8fbe36a2fa={};struct dst_entry*dst=NULL,*
|
||||
DATARMNETb5af46179c;struct rtable*DATARMNET066b8bd537;struct net_device*
|
||||
DATARMNET39542b437e=NULL;DATARMNETbf55123e5b=skb_header_pointer(
|
||||
DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
|
||||
DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b){DATARMNET17f6bc1be5(
|
||||
DATARMNET0b9541c9b3);goto DATARMNETc1174a0f45;}memcpy(&DATARMNET8fbe36a2fa.saddr
|
||||
,&DATARMNETbf55123e5b->saddr,sizeof(struct in6_addr));memcpy(&
|
||||
DATARMNET8fbe36a2fa.daddr,&DATARMNETbf55123e5b->daddr,sizeof(struct in6_addr));
|
||||
dst=ipv6_stub->ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if
|
||||
(IS_ERR(dst)){DATARMNET17f6bc1be5(DATARMNET0078f1d36d);DATARMNET39542b437e=
|
||||
dev_get_by_name_rcu(&init_net,"\x64\x75\x6d\x6d\x79\x30");if(!
|
||||
DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNET7c6c30b7d2);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET8fbe36a2fa.flowi6_oif=DATARMNET39542b437e->ifindex
|
||||
;DATARMNET8fbe36a2fa.flowi6_flags=FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->
|
||||
ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
|
||||
DATARMNET17f6bc1be5(DATARMNET39d80cc483);goto DATARMNET74b365f6cc;}}
|
||||
DATARMNETb5af46179c=xfrm_lookup(&init_net,dst,flowi6_to_flowi(&
|
||||
DATARMNET8fbe36a2fa),NULL,(0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*
|
||||
)DATARMNETb5af46179c;if(IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(
|
||||
DATARMNET661bdeccd4);goto DATARMNETc1174a0f45;}skb_dst_set(DATARMNET543491eb0f,
|
||||
DATARMNETb5af46179c);dst_output(&init_net,NULL,DATARMNET543491eb0f);
|
||||
DATARMNET17f6bc1be5(DATARMNET28e7704d13);return RX_HANDLER_CONSUMED;}else if(
|
||||
DATARMNET543491eb0f->dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IP))&&
|
||||
DATARMNET1a901c3d09==DATARMNET356f2a237e){struct iphdr*DATARMNET86f1f2cdc9,
|
||||
DATARMNETbf6548198e;struct flowi4 DATARMNET099aa93adc={};struct net_device*
|
||||
DATARMNET813ca18d06=NULL;struct dst_entry*DATARMNETb5af46179c;struct net_device*
|
||||
DATARMNET39542b437e=NULL;struct rtable*DATARMNET066b8bd537;DATARMNET86f1f2cdc9=
|
||||
skb_header_pointer(DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*
|
||||
DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9){
|
||||
DATARMNET17f6bc1be5(DATARMNET15454f969d);goto DATARMNETc1174a0f45;}
|
||||
DATARMNET813ca18d06=dev_get_by_name_rcu(&init_net,DATARMNET934406764d());if(!
|
||||
DATARMNET813ca18d06){DATARMNET17f6bc1be5(DATARMNET4c5aeeb476);goto
|
||||
DATARMNETc1174a0f45;}memcpy(&DATARMNET099aa93adc.daddr,&DATARMNET86f1f2cdc9->
|
||||
daddr,sizeof(__be32));DATARMNET099aa93adc.flowi4_oif=DATARMNET813ca18d06->
|
||||
ifindex;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537
|
||||
=ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET9bdb1c4072);
|
||||
DATARMNET39542b437e=dev_get_by_name_rcu(&init_net,"\x64\x75\x6d\x6d\x79\x30");if
|
||||
(!DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNET5abdc89190);goto
|
||||
@@ -147,21 +175,64 @@ DATARMNETc1174a0f45;}DATARMNET099aa93adc.flowi4_oif=DATARMNET39542b437e->ifindex
|
||||
;DATARMNET099aa93adc.flowi4_flags=FLOWI_FLAG_KNOWN_NH;DATARMNET066b8bd537=
|
||||
ip_route_output_key(&init_net,&DATARMNET099aa93adc);if(IS_ERR(
|
||||
DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET101af46c1c);goto
|
||||
DATARMNET74b365f6cc;}}dst_xfrm=xfrm_lookup(&init_net,&DATARMNET066b8bd537->dst,
|
||||
flowi4_to_flowi(&DATARMNET099aa93adc),NULL,(0xd2d+202-0xdf7));
|
||||
DATARMNET066b8bd537=(struct rtable*)dst_xfrm;if(IS_ERR(DATARMNET066b8bd537)){
|
||||
DATARMNET17f6bc1be5(DATARMNET9a57ef32d3);goto DATARMNETc1174a0f45;}skb_dst_set(
|
||||
DATARMNET543491eb0f,dst_xfrm);dst_output(&init_net,NULL,DATARMNET543491eb0f);
|
||||
DATARMNET17f6bc1be5(DATARMNET9a940d93dc);return RX_HANDLER_CONSUMED;}
|
||||
DATARMNET74b365f6cc;}}memcpy(&DATARMNET099aa93adc.saddr,&DATARMNET86f1f2cdc9->
|
||||
saddr,sizeof(__be32));DATARMNETb5af46179c=xfrm_lookup(&init_net,&
|
||||
DATARMNET066b8bd537->dst,flowi4_to_flowi(&DATARMNET099aa93adc),NULL,
|
||||
(0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*)DATARMNETb5af46179c;if(
|
||||
IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(DATARMNET9a57ef32d3);goto
|
||||
DATARMNETc1174a0f45;}skb_dst_set(DATARMNET543491eb0f,DATARMNETb5af46179c);
|
||||
dst_output(&init_net,NULL,DATARMNET543491eb0f);DATARMNET17f6bc1be5(
|
||||
DATARMNET9a940d93dc);return RX_HANDLER_CONSUMED;}else if(DATARMNET543491eb0f->
|
||||
dev&&(DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6))&&DATARMNET1a901c3d09==
|
||||
DATARMNET356f2a237e){struct ipv6hdr*DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;
|
||||
struct flowi6 DATARMNET8fbe36a2fa={};struct dst_entry*dst=NULL,*
|
||||
DATARMNETb5af46179c;struct rtable*DATARMNET066b8bd537;struct net_device*
|
||||
DATARMNET39542b437e=NULL;DATARMNETbf55123e5b=skb_header_pointer(
|
||||
DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
|
||||
DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b){DATARMNET17f6bc1be5(
|
||||
DATARMNET6b0ed53aab);goto DATARMNETc1174a0f45;}memcpy(&DATARMNET8fbe36a2fa.saddr
|
||||
,&DATARMNETbf55123e5b->saddr,sizeof(struct in6_addr));memcpy(&
|
||||
DATARMNET8fbe36a2fa.daddr,&DATARMNETbf55123e5b->daddr,sizeof(struct in6_addr));
|
||||
dst=ipv6_stub->ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if
|
||||
(IS_ERR(dst)){DATARMNET17f6bc1be5(DATARMNET22ac945cae);DATARMNET39542b437e=
|
||||
dev_get_by_name_rcu(&init_net,"\x64\x75\x6d\x6d\x79\x30");if(!
|
||||
DATARMNET39542b437e){DATARMNET17f6bc1be5(DATARMNETf326b7c906);goto
|
||||
DATARMNETc1174a0f45;}DATARMNET8fbe36a2fa.flowi6_oif=DATARMNET39542b437e->ifindex
|
||||
;DATARMNET8fbe36a2fa.flowi6_flags=FLOWI_FLAG_KNOWN_NH;dst=ipv6_stub->
|
||||
ipv6_dst_lookup_flow(&init_net,NULL,&DATARMNET8fbe36a2fa,NULL);if(IS_ERR(dst)){
|
||||
DATARMNET17f6bc1be5(DATARMNET544d78ede7);goto DATARMNET74b365f6cc;}}
|
||||
DATARMNETb5af46179c=xfrm_lookup(&init_net,dst,flowi6_to_flowi(&
|
||||
DATARMNET8fbe36a2fa),NULL,(0xd2d+202-0xdf7));DATARMNET066b8bd537=(struct rtable*
|
||||
)DATARMNETb5af46179c;if(IS_ERR(DATARMNET066b8bd537)){DATARMNET17f6bc1be5(
|
||||
DATARMNET97b44d0c09);goto DATARMNETc1174a0f45;}skb_dst_set(DATARMNET543491eb0f,
|
||||
DATARMNETb5af46179c);dst_output(&init_net,NULL,DATARMNET543491eb0f);
|
||||
DATARMNET17f6bc1be5(DATARMNETf954265acb);return RX_HANDLER_CONSUMED;}
|
||||
DATARMNET74b365f6cc: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(
|
||||
unsigned long DATARMNETfb0677cc3c;struct DATARMNET8d3c2559ca DATARMNET2d4b4cfc9e
|
||||
;struct DATARMNET41b426061d*DATARMNET8184934307;uint8_t DATARMNET1a901c3d09=
|
||||
DATARMNETdcafdec32a;if(!DATARMNET543491eb0f||DATARMNET543491eb0f->pkt_type==
|
||||
PACKET_LOOPBACK)return RX_HANDLER_PASS;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;DATARMNET2d4b4cfc9e.DATARMNET0dc14167a1=DATARMNET86f1f2cdc9
|
||||
->saddr;DATARMNET2d4b4cfc9e.DATARMNET0d956cc77a=(0xd11+230-0xdf3);}else if(
|
||||
DATARMNET543491eb0f->protocol==htons(ETH_P_IPV6)){struct ipv6hdr*
|
||||
DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=skb_header_pointer(
|
||||
DATARMNET543491eb0f,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),&
|
||||
DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto DATARMNETbf4095f79e;memcpy(&
|
||||
DATARMNET2d4b4cfc9e.DATARMNET5700daac01,&DATARMNETbf55123e5b->saddr,sizeof(
|
||||
DATARMNET2d4b4cfc9e.DATARMNET5700daac01));DATARMNET2d4b4cfc9e.
|
||||
DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else{goto DATARMNETbf4095f79e;}
|
||||
rcu_read_lock();DATARMNET8184934307=DATARMNETcc0a01df2a(&DATARMNET2d4b4cfc9e);
|
||||
rcu_read_unlock();if(!DATARMNET8184934307)goto DATARMNETbf4095f79e;
|
||||
DATARMNET1a901c3d09=DATARMNET8184934307->DATARMNET7ed5754a5c.DATARMNET9954a624ac
|
||||
;if(DATARMNET1a901c3d09==DATARMNETdcafdec32a)goto DATARMNETbf4095f79e;if(
|
||||
DATARMNET543491eb0f->dev&&DATARMNET1a901c3d09==DATARMNET9bfbc31cd6)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),
|
||||
@@ -204,13 +275,14 @@ DATARMNET299a8a08b5;hrtimer_start(&DATARMNET63b1a086d5->DATARMNET9f31ce5d2d,
|
||||
DATARMNET5da8c68c19,HRTIMER_MODE_REL);hash_add_rcu(DATARMNET5413d6f8ec,&
|
||||
DATARMNET63b1a086d5->DATARMNETe8608dd267,DATARMNETa76763310b.DATARMNET2cb607d686
|
||||
);spin_unlock_irqrestore(&DATARMNET820642743b,DATARMNETfb0677cc3c);
|
||||
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==
|
||||
DATARMNETbf4095f79e:return DATARMNETc9ed97754a(DATARMNET543491eb0f,
|
||||
DATARMNET1a901c3d09);DATARMNET9b3d23a43b:DATARMNET7ca470d54b(DATARMNET543491eb0f
|
||||
,TCP_FLAG_SYN);return DATARMNETc9ed97754a(DATARMNET543491eb0f,
|
||||
DATARMNET1a901c3d09);}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
|
||||
|
@@ -24,7 +24,7 @@ NLA_POLICY_NESTED_ARRAY(DATARMNET19c5fce390),[DATARMNETb8afde4a5a]={.type=
|
||||
NLA_NUL_STRING,.len=IFNAMSIZ-(0xd26+209-0xdf6),},[DATARMNETea4b56dc2b]={.type=
|
||||
NLA_NUL_STRING,.len=INET6_ADDRSTRLEN,},[DATARMNET8bf80e4b66]={.type=
|
||||
NLA_NUL_STRING,.len=IFNAMSIZ-(0xd26+209-0xdf6),},[DATARMNET44a9a789aa]={.type=
|
||||
NLA_U16,},};
|
||||
NLA_U16,},[DATARMNET149cafb1b7]={.type=NLA_U8,},};
|
||||
#define DATARMNET58eca5265b(DATARMNET5aeb0ef9bc, DATARMNETbd9859b58e) \
|
||||
{ \
|
||||
.cmd = DATARMNET5aeb0ef9bc, \
|
||||
@@ -91,32 +91,54 @@ DATARMNETef77661260++;}DATARMNETb14e52a504=DATARMNET07f6485c9b(
|
||||
DATARMNETcadc2ef9aa,DATARMNETef77661260,DATARMNET54338da2ff);DATARMNETbf4095f79e
|
||||
:kfree(DATARMNETcadc2ef9aa);return DATARMNETb14e52a504;}static int
|
||||
DATARMNETf1fa473089(struct sk_buff*DATARMNET543491eb0f,struct genl_info*
|
||||
DATARMNET54338da2ff){struct nlattr*DATARMNETef7cdd7b6b;DATARMNETef7cdd7b6b=
|
||||
DATARMNET54338da2ff->attrs[DATARMNETb8afde4a5a];if(!DATARMNETef7cdd7b6b){
|
||||
DATARMNET54338da2ff){struct nlattr*DATARMNETef7cdd7b6b;int DATARMNET9954a624ac;
|
||||
int DATARMNET268a8314cf;if(!DATARMNET54338da2ff->attrs[DATARMNETb8afde4a5a]||!
|
||||
DATARMNET54338da2ff->attrs[DATARMNET149cafb1b7]){GENL_SET_ERR_MSG(
|
||||
DATARMNET54338da2ff,
|
||||
"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x6e\x65\x74\x77\x6f\x72\x6b\x20\x69\x6e\x66\x6f"
|
||||
);return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||
DATARMNETb8afde4a5a];DATARMNET9954a624ac=nla_get_u8(DATARMNET54338da2ff->attrs[
|
||||
DATARMNET149cafb1b7]);if(DATARMNET9954a624ac!=DATARMNET356f2a237e&&
|
||||
DATARMNET9954a624ac!=DATARMNET45ee632553&&DATARMNET9954a624ac!=
|
||||
DATARMNET9bfbc31cd6){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4e\x65\x74\x77\x6f\x72\x6b\x20\x74\x79\x70\x65\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x21"
|
||||
);return-EINVAL;}if(DATARMNET9954a624ac==DATARMNET45ee632553){
|
||||
DATARMNET268a8314cf=DATARMNET92e5468fc5(nla_data(DATARMNETef7cdd7b6b),
|
||||
DATARMNET54338da2ff);}else{DATARMNET268a8314cf=DATARMNET97b2388e63(nla_data(
|
||||
DATARMNETef7cdd7b6b),DATARMNET54338da2ff);}return DATARMNET268a8314cf;}static
|
||||
int DATARMNETcd9478470c(struct sk_buff*DATARMNET543491eb0f,struct genl_info*
|
||||
DATARMNET54338da2ff){struct nlattr*DATARMNETef7cdd7b6b;int DATARMNET9954a624ac;
|
||||
int DATARMNET268a8314cf;if(!DATARMNET54338da2ff->attrs[DATARMNETb8afde4a5a]||!
|
||||
DATARMNET54338da2ff->attrs[DATARMNET149cafb1b7]){GENL_SET_ERR_MSG(
|
||||
DATARMNET54338da2ff,
|
||||
"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
||||
);return-EINVAL;}DATARMNET9954a624ac=nla_get_u8(DATARMNET54338da2ff->attrs[
|
||||
DATARMNET149cafb1b7]);DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||
DATARMNETb8afde4a5a];if(DATARMNET9954a624ac!=DATARMNET356f2a237e&&
|
||||
DATARMNET9954a624ac!=DATARMNET45ee632553&&DATARMNET9954a624ac!=
|
||||
DATARMNET9bfbc31cd6){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4e\x65\x74\x77\x6f\x72\x6b\x20\x74\x79\x70\x65\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x21"
|
||||
);return-EINVAL;}if(DATARMNET9954a624ac==DATARMNET45ee632553){
|
||||
DATARMNET268a8314cf=DATARMNET9d7bb9a63d(nla_data(DATARMNETef7cdd7b6b),
|
||||
DATARMNET54338da2ff);}else{DATARMNET268a8314cf=DATARMNETa903cd5994(nla_data(
|
||||
DATARMNETef7cdd7b6b),DATARMNET54338da2ff);}if(DATARMNET268a8314cf)
|
||||
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x64\x65\x76\x69\x63\x65\x20\x69\x6e\x66\x6f"
|
||||
);return-EINVAL;}return DATARMNET97b2388e63(nla_data(DATARMNETef7cdd7b6b),
|
||||
DATARMNET54338da2ff);}static int DATARMNETcd9478470c(struct sk_buff*
|
||||
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){struct nlattr*
|
||||
DATARMNETef7cdd7b6b;int DATARMNET268a8314cf;DATARMNETef7cdd7b6b=
|
||||
DATARMNET54338da2ff->attrs[DATARMNETb8afde4a5a];DATARMNET268a8314cf=
|
||||
DATARMNETa903cd5994((DATARMNETef7cdd7b6b)?nla_data(DATARMNETef7cdd7b6b):NULL,
|
||||
DATARMNET54338da2ff);if(DATARMNET268a8314cf)GENL_SET_ERR_MSG(DATARMNET54338da2ff
|
||||
,
|
||||
"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
||||
);return DATARMNET268a8314cf;}static int DATARMNETb86993aefb(struct sk_buff*
|
||||
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){struct
|
||||
DATARMNET8d3c2559ca DATARMNET2d4b4cfc9e={};struct nlattr*DATARMNETef7cdd7b6b;
|
||||
char*DATARMNETd7f4d7c495;int DATARMNET268a8314cf;if(!DATARMNET54338da2ff->attrs[
|
||||
DATARMNETea4b56dc2b]||!DATARMNET54338da2ff->attrs[DATARMNET8bf80e4b66]){
|
||||
DATARMNETea4b56dc2b]||!DATARMNET54338da2ff->attrs[DATARMNET8bf80e4b66]||!
|
||||
DATARMNET54338da2ff->attrs[DATARMNET149cafb1b7]){GENL_SET_ERR_MSG(
|
||||
DATARMNET54338da2ff,
|
||||
"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x2c\x20\x61\x64\x64\x72\x65\x73\x73\x2c\x20\x61\x6e\x64\x20\x6e\x65\x74\x77\x6f\x72\x6b"
|
||||
);return-EINVAL;}DATARMNET2d4b4cfc9e.DATARMNET9954a624ac=nla_get_u8(
|
||||
DATARMNET54338da2ff->attrs[DATARMNET149cafb1b7]);DATARMNETef7cdd7b6b=
|
||||
DATARMNET54338da2ff->attrs[DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(
|
||||
DATARMNETef7cdd7b6b);if(strchr(DATARMNETd7f4d7c495,DATARMNET5fe2c6571f)){if(
|
||||
in6_pton(DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.
|
||||
DATARMNET5700daac01.s6_addr,-(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){
|
||||
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
|
||||
);return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||
DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
|
||||
(DATARMNETd7f4d7c495,DATARMNET5fe2c6571f)){if(in6_pton(DATARMNETd7f4d7c495,
|
||||
nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.DATARMNET5700daac01.s6_addr,-
|
||||
(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(DATARMNET54338da2ff
|
||||
,
|
||||
"\x46\x57\x44\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x20\x49\x50\x76\x36"
|
||||
);return-EINVAL;}DATARMNET2d4b4cfc9e.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else
|
||||
{if(in4_pton(DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),(u8*)&
|
||||
@@ -135,15 +157,17 @@ DATARMNET268a8314cf;}static int DATARMNETc175a08219(struct sk_buff*
|
||||
DATARMNET543491eb0f,struct genl_info*DATARMNET54338da2ff){struct
|
||||
DATARMNET8d3c2559ca DATARMNET2d4b4cfc9e={};struct nlattr*DATARMNETef7cdd7b6b;
|
||||
char*DATARMNETd7f4d7c495;int DATARMNET268a8314cf;if(!DATARMNET54338da2ff->attrs[
|
||||
DATARMNETea4b56dc2b]||!DATARMNET54338da2ff->attrs[DATARMNET8bf80e4b66]){
|
||||
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
DATARMNETea4b56dc2b]||!DATARMNET54338da2ff->attrs[DATARMNET8bf80e4b66]||!
|
||||
DATARMNET54338da2ff->attrs[DATARMNET149cafb1b7]){GENL_SET_ERR_MSG(
|
||||
DATARMNET54338da2ff,
|
||||
"\x4d\x75\x73\x74\x20\x73\x70\x65\x63\x69\x66\x79\x20\x46\x57\x44\x20\x64\x65\x76\x69\x63\x65\x20\x61\x6e\x64\x20\x61\x64\x64\x72\x65\x73\x73"
|
||||
);return-EINVAL;}DATARMNETef7cdd7b6b=DATARMNET54338da2ff->attrs[
|
||||
DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(DATARMNETef7cdd7b6b);if(strchr
|
||||
(DATARMNETd7f4d7c495,DATARMNET5fe2c6571f)){if(in6_pton(DATARMNETd7f4d7c495,
|
||||
nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.DATARMNET5700daac01.s6_addr,-
|
||||
(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){GENL_SET_ERR_MSG(DATARMNET54338da2ff
|
||||
,
|
||||
);return-EINVAL;}DATARMNET2d4b4cfc9e.DATARMNET9954a624ac=nla_get_u8(
|
||||
DATARMNET54338da2ff->attrs[DATARMNET149cafb1b7]);DATARMNETef7cdd7b6b=
|
||||
DATARMNET54338da2ff->attrs[DATARMNETea4b56dc2b];DATARMNETd7f4d7c495=nla_data(
|
||||
DATARMNETef7cdd7b6b);if(strchr(DATARMNETd7f4d7c495,DATARMNET5fe2c6571f)){if(
|
||||
in6_pton(DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),DATARMNET2d4b4cfc9e.
|
||||
DATARMNET5700daac01.s6_addr,-(0xd26+209-0xdf6),NULL)!=(0xd26+209-0xdf6)){
|
||||
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x46\x57\x44\x20\x61\x64\x64\x72\x65\x73\x73\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x20\x49\x50\x76\x36"
|
||||
);return-EINVAL;}DATARMNET2d4b4cfc9e.DATARMNET0d956cc77a=(0xd03+244-0xdf1);}else
|
||||
{if(in4_pton(DATARMNETd7f4d7c495,nla_len(DATARMNETef7cdd7b6b),(u8*)&
|
||||
|
@@ -15,9 +15,10 @@ DATARMNET14a3625b43,DATARMNET4478d3511b,DATARMNETc2d5a4e103,DATARMNET18145b00f6,
|
||||
DATARMNETb8857fe6d9,DATARMNET6d50a30ec2,DATARMNET2e5d7ed755,DATARMNETd37aaf8b58,
|
||||
DATARMNET3626d362d4,DATARMNETce1982dccc,};enum{DATARMNET09a5930cdf,
|
||||
DATARMNET4e9cd7b8bf,DATARMNETb8afde4a5a,DATARMNETea4b56dc2b,DATARMNET8bf80e4b66,
|
||||
DATARMNET44a9a789aa,DATARMNET0bfbea52c0,};
|
||||
DATARMNET44a9a789aa,DATARMNET149cafb1b7,DATARMNET0bfbea52c0,};
|
||||
#define DATARMNETebcc30fe04 (DATARMNET0bfbea52c0 - (0xd26+209-0xdf6))
|
||||
enum{DATARMNET0dcb7acdac,DATARMNET8c062d7709,DATARMNET93b5e3666d,};
|
||||
#define DATARMNETf6bbad94a5 (DATARMNET93b5e3666d - (0xd26+209-0xdf6))
|
||||
#define DATARMNET99ac48d88b (DATARMNETdcafdec32a - (0xd26+209-0xdf6))
|
||||
#endif
|
||||
|
||||
|
@@ -25,40 +25,38 @@
|
||||
#include "rmnet_wlan_stats.h"
|
||||
#include "rmnet_wlan_fragment.h"
|
||||
#include "rmnet_wlan_connection.h"
|
||||
static char*verinfo[]={"\x61\x33\x33\x33\x36\x37\x61\x31",
|
||||
"\x37\x34\x31\x35\x39\x32\x31\x63","\x33\x35\x36\x63\x34\x39\x31\x63",
|
||||
"\x34\x64\x32\x32\x34\x33\x36\x33","\x61\x34\x31\x63\x39\x64\x37\x62",
|
||||
"\x38\x66\x32\x66\x65\x64\x32\x66","\x63\x30\x32\x62\x61\x39\x30\x65"};
|
||||
module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC(
|
||||
verinfo,
|
||||
static char*verinfo[]={"\x62\x31\x62\x63\x64\x66\x66\x61",
|
||||
"\x61\x33\x33\x33\x36\x37\x61\x31","\x37\x34\x31\x35\x39\x32\x31\x63",
|
||||
"\x33\x35\x36\x63\x34\x39\x31\x63","\x34\x64\x32\x32\x34\x33\x36\x33",
|
||||
"\x61\x34\x31\x63\x39\x64\x37\x62","\x38\x66\x32\x66\x65\x64\x32\x66",
|
||||
"\x63\x30\x32\x62\x61\x39\x30\x65"};module_param_array(verinfo,charp,NULL,
|
||||
(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo,
|
||||
"\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72"
|
||||
);
|
||||
#define DATARMNETaf49b04806 ((0xeb7+1158-0x132d))
|
||||
#define DATARMNET6b4ac8224c (const_ilog2(DATARMNETaf49b04806))
|
||||
struct DATARMNET745f724205{struct hlist_node DATARMNETe8608dd267;struct rcu_head
|
||||
DATARMNET28bfe9e6ad;struct DATARMNETb89ecedefc DATARMNET54338da2ff;};struct
|
||||
DATARMNET41b426061d{struct hlist_node DATARMNETe8608dd267;struct rcu_head
|
||||
DATARMNET28bfe9e6ad;struct notifier_block DATARMNET272c159b3c;char
|
||||
DATARMNET852d4d00e2[IFNAMSIZ];struct DATARMNET8d3c2559ca DATARMNET7ed5754a5c;};
|
||||
struct DATARMNETda06413d0d{struct hlist_node DATARMNETe8608dd267;struct rcu_head
|
||||
DATARMNETda06413d0d{struct hlist_node DATARMNETe8608dd267;struct rcu_head
|
||||
DATARMNET28bfe9e6ad;__be16 DATARMNETf0d9de7e2f;};static DEFINE_MUTEX(
|
||||
DATARMNET63a2b7773e);static DEFINE_HASHTABLE(DATARMNET1903907456,
|
||||
DATARMNET6b4ac8224c);static DEFINE_MUTEX(DATARMNETf46fb02ac6);static
|
||||
DEFINE_HASHTABLE(DATARMNET78ed39f13b,DATARMNET6b4ac8224c);static DEFINE_MUTEX(
|
||||
DATARMNET954bef55d0);static DEFINE_HASHTABLE(DATARMNET133502ca0e,
|
||||
DATARMNET6b4ac8224c);static DEFINE_HASHTABLE(DATARMNET665d2f133f,
|
||||
DATARMNET6b4ac8224c);static char DATARMNET30500ba48c[IFNAMSIZ];static bool
|
||||
DATARMNET1e31b22eff(struct DATARMNETb89ecedefc*DATARMNETae0905b0b3,struct
|
||||
DATARMNETb89ecedefc*DATARMNETdb49f21565){if(DATARMNETae0905b0b3->
|
||||
DATARMNET0d956cc77a!=DATARMNETdb49f21565->DATARMNET0d956cc77a||
|
||||
DATARMNETae0905b0b3->DATARMNET4924e79411!=DATARMNETdb49f21565->
|
||||
DATARMNET4924e79411)return false;if(DATARMNETae0905b0b3->DATARMNET0d956cc77a==
|
||||
IPPROTO_ESP)return DATARMNETae0905b0b3->DATARMNET906b2ee561==DATARMNETdb49f21565
|
||||
->DATARMNET906b2ee561;return DATARMNETae0905b0b3->DATARMNETf0d9de7e2f==
|
||||
DATARMNETdb49f21565->DATARMNETf0d9de7e2f;}static int DATARMNET0b72d312f9(struct
|
||||
DATARMNETb89ecedefc*DATARMNET3396919a68,struct genl_info*DATARMNET54338da2ff)
|
||||
__must_hold(&DATARMNET63a2b7773e){struct DATARMNET745f724205*DATARMNET63b1a086d5
|
||||
;rcu_read_lock();if(DATARMNET4eafcdee07(DATARMNET3396919a68)){rcu_read_unlock();
|
||||
DATARMNET6b4ac8224c);static char DATARMNET30500ba48c[IFNAMSIZ];static char
|
||||
DATARMNET755f0f0df8[IFNAMSIZ];static bool DATARMNET1e31b22eff(struct
|
||||
DATARMNETb89ecedefc*DATARMNETae0905b0b3,struct DATARMNETb89ecedefc*
|
||||
DATARMNETdb49f21565){if(DATARMNETae0905b0b3->DATARMNET0d956cc77a!=
|
||||
DATARMNETdb49f21565->DATARMNET0d956cc77a||DATARMNETae0905b0b3->
|
||||
DATARMNET4924e79411!=DATARMNETdb49f21565->DATARMNET4924e79411)return false;if(
|
||||
DATARMNETae0905b0b3->DATARMNET0d956cc77a==IPPROTO_ESP)return DATARMNETae0905b0b3
|
||||
->DATARMNET906b2ee561==DATARMNETdb49f21565->DATARMNET906b2ee561;return
|
||||
DATARMNETae0905b0b3->DATARMNETf0d9de7e2f==DATARMNETdb49f21565->
|
||||
DATARMNETf0d9de7e2f;}static int DATARMNET0b72d312f9(struct DATARMNETb89ecedefc*
|
||||
DATARMNET3396919a68,struct genl_info*DATARMNET54338da2ff)__must_hold(&
|
||||
DATARMNET63a2b7773e){struct DATARMNET745f724205*DATARMNET63b1a086d5;
|
||||
rcu_read_lock();if(DATARMNET4eafcdee07(DATARMNET3396919a68)){rcu_read_unlock();
|
||||
GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x54\x75\x70\x6c\x65\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x70\x72\x65\x73\x65\x6e\x74"
|
||||
);return-EEXIST;}rcu_read_unlock();DATARMNET63b1a086d5=kzalloc(sizeof(*
|
||||
@@ -95,7 +93,7 @@ DATARMNET0d956cc77a)return false;if(DATARMNET1476c48228->DATARMNET0d956cc77a==
|
||||
(0xd11+230-0xdf3))return DATARMNET1476c48228->DATARMNET0dc14167a1==
|
||||
DATARMNET57a0f36a25->DATARMNET0dc14167a1;return!ipv6_masked_addr_cmp(&
|
||||
DATARMNET1476c48228->DATARMNET5700daac01,&DATARMNET4c8c2ca74e,&
|
||||
DATARMNET57a0f36a25->DATARMNET5700daac01);}static struct DATARMNET41b426061d*
|
||||
DATARMNET57a0f36a25->DATARMNET5700daac01);}struct DATARMNET41b426061d*
|
||||
DATARMNETcc0a01df2a(struct DATARMNET8d3c2559ca*DATARMNET54338da2ff)__must_hold(
|
||||
RCU){struct DATARMNET41b426061d*DATARMNET63b1a086d5;hash_for_each_possible_rcu(
|
||||
DATARMNET78ed39f13b,DATARMNET63b1a086d5,DATARMNETe8608dd267,DATARMNET54338da2ff
|
||||
@@ -277,39 +275,55 @@ DATARMNET611d08d671)){if(DATARMNET0a4704e5e0(&DATARMNET3396919a68)){kfree_skb(
|
||||
DATARMNET543491eb0f);DATARMNET1dec89a127=RX_HANDLER_CONSUMED;DATARMNET5ca94dbc3c
|
||||
(DATARMNET0981317411);goto DATARMNETbf4095f79e;}DATARMNET5ca94dbc3c(
|
||||
DATARMNETd1ad664d00);goto DATARMNETbf4095f79e;}}else if(DATARMNET3396919a68.
|
||||
DATARMNET4924e79411==IPPROTO_ESP){struct ip_esp_hdr*DATARMNET73ee6a7020=(struct
|
||||
ip_esp_hdr*)(DATARMNET543491eb0f->data+DATARMNET611d08d671);DATARMNET3396919a68.
|
||||
DATARMNET906b2ee561=DATARMNET73ee6a7020->spi;}else{goto DATARMNETbf4095f79e;}if(
|
||||
DATARMNET4eafcdee07(&DATARMNET3396919a68))goto DATARMNET1e5291b369;goto
|
||||
DATARMNETbf4095f79e;DATARMNET1e5291b369:if(!DATARMNET4899053671(
|
||||
DATARMNET543491eb0f,DATARMNET2d4b4cfc9e))DATARMNET1dec89a127=RX_HANDLER_CONSUMED
|
||||
;DATARMNETbf4095f79e:rcu_read_unlock();return DATARMNET1dec89a127;}static int
|
||||
DATARMNET0ed065ddb7(struct notifier_block*DATARMNET272c159b3c,unsigned long
|
||||
DATARMNET4924e79411==IPPROTO_ESP){struct ip_esp_hdr*DATARMNET568b3d4b19,
|
||||
DATARMNET3f4e206745;DATARMNET568b3d4b19=skb_header_pointer(DATARMNET543491eb0f,
|
||||
DATARMNET611d08d671,sizeof(*DATARMNET568b3d4b19),&DATARMNET3f4e206745);if(!
|
||||
DATARMNET568b3d4b19){DATARMNET5ca94dbc3c(DATARMNETf1f7e2c408);goto
|
||||
DATARMNETbf4095f79e;}DATARMNET3396919a68.DATARMNET906b2ee561=DATARMNET568b3d4b19
|
||||
->spi;}else{goto DATARMNETbf4095f79e;}if(DATARMNET4eafcdee07(&
|
||||
DATARMNET3396919a68))goto DATARMNET1e5291b369;goto DATARMNETbf4095f79e;
|
||||
DATARMNET1e5291b369:if(!DATARMNET4899053671(DATARMNET543491eb0f,
|
||||
DATARMNET2d4b4cfc9e))DATARMNET1dec89a127=RX_HANDLER_CONSUMED;DATARMNETbf4095f79e
|
||||
:rcu_read_unlock();return DATARMNET1dec89a127;}static int DATARMNET0ed065ddb7(
|
||||
struct notifier_block*DATARMNET272c159b3c,unsigned long DATARMNET7f045a1e6e,void
|
||||
*data){struct net_device*DATARMNET00dcb79bc4=netdev_notifier_info_to_dev(data);
|
||||
if(!DATARMNET00dcb79bc4||strncmp(DATARMNET00dcb79bc4->name,DATARMNET30500ba48c,
|
||||
IFNAMSIZ))return NOTIFY_DONE;switch(DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:
|
||||
netdev_rx_handler_unregister(DATARMNET00dcb79bc4);break;case NETDEV_REGISTER:if(
|
||||
netdev_rx_handler_register(DATARMNET00dcb79bc4,DATARMNET37a92021f9,NULL))pr_err(
|
||||
"\x25\x73\x28\x29\x3a\x20\x52\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
|
||||
,__func__);break;default:break;}return NOTIFY_DONE;}static int
|
||||
DATARMNET6512527d9c(struct notifier_block*DATARMNET272c159b3c,unsigned long
|
||||
DATARMNET7f045a1e6e,void*data){struct net_device*DATARMNET00dcb79bc4=
|
||||
netdev_notifier_info_to_dev(data);if(!DATARMNET00dcb79bc4||strncmp(
|
||||
DATARMNET00dcb79bc4->name,DATARMNET30500ba48c,IFNAMSIZ))return NOTIFY_DONE;
|
||||
DATARMNET00dcb79bc4->name,DATARMNET755f0f0df8,IFNAMSIZ))return NOTIFY_DONE;
|
||||
switch(DATARMNET7f045a1e6e){case NETDEV_UNREGISTER:netdev_rx_handler_unregister(
|
||||
DATARMNET00dcb79bc4);break;case NETDEV_REGISTER:if(netdev_rx_handler_register(
|
||||
DATARMNET00dcb79bc4,DATARMNET37a92021f9,NULL))pr_err(
|
||||
"\x25\x73\x28\x29\x3a\x20\x52\x65\x67\x69\x73\x74\x65\x72\x69\x6e\x67\x20\x68\x61\x6e\x64\x6c\x65\x72\x20\x66\x61\x69\x6c\x65\x64" "\n"
|
||||
,__func__);break;default:break;}return NOTIFY_DONE;}static struct notifier_block
|
||||
DATARMNETa1726000d8={.notifier_call=DATARMNET0ed065ddb7,};static int
|
||||
DATARMNET116f9a46aa(void){int DATARMNET268a8314cf;if(!DATARMNET30500ba48c[
|
||||
DATARMNETa1726000d8={.notifier_call=DATARMNET0ed065ddb7,};static struct
|
||||
notifier_block DATARMNET2c4484aef5={.notifier_call=DATARMNET6512527d9c,};static
|
||||
int DATARMNET116f9a46aa(void){int DATARMNET268a8314cf;if(!DATARMNET30500ba48c[
|
||||
(0xd2d+202-0xdf7)])return(0xd2d+202-0xdf7);DATARMNET268a8314cf=
|
||||
unregister_netdevice_notifier(&DATARMNETa1726000d8);if(!DATARMNET268a8314cf)
|
||||
DATARMNET30500ba48c[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return
|
||||
DATARMNET268a8314cf;}static void DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa()
|
||||
;DATARMNET1f36d4813c();DATARMNET8c0e010dfb();DATARMNETe5b03fe375();
|
||||
DATARMNETad43e44c7e();}static int DATARMNET38ebe8f319(struct sk_buff*
|
||||
DATARMNET543491eb0f,int DATARMNET1faf88208b){if(!pskb_may_pull(
|
||||
DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!skb_cloned(
|
||||
DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,DATARMNET1faf88208b
|
||||
))return(0xd2d+202-0xdf7);return pskb_expand_head(DATARMNET543491eb0f,
|
||||
(0xd2d+202-0xdf7),(0xd2d+202-0xdf7),GFP_ATOMIC);}static void DATARMNET9a8d756527
|
||||
(__sum16*DATARMNETc2284e5688,struct sk_buff*DATARMNET543491eb0f,__be32
|
||||
DATARMNET9080427d4e,__be32 DATARMNETc0e620c987,bool DATARMNETcb0345b337){if(
|
||||
DATARMNET543491eb0f->ip_summed!=CHECKSUM_PARTIAL){csum_replace4(
|
||||
DATARMNETc2284e5688,DATARMNET9080427d4e,DATARMNETc0e620c987);if(
|
||||
DATARMNET268a8314cf;}static int DATARMNET56777c5470(void){int
|
||||
DATARMNET268a8314cf;if(!DATARMNET755f0f0df8[(0xd2d+202-0xdf7)])return
|
||||
(0xd2d+202-0xdf7);DATARMNET268a8314cf=unregister_netdevice_notifier(&
|
||||
DATARMNET2c4484aef5);if(!DATARMNET268a8314cf)DATARMNET755f0f0df8[
|
||||
(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);return DATARMNET268a8314cf;}static void
|
||||
DATARMNETbb4efa5b3d(void){DATARMNET116f9a46aa();DATARMNET1f36d4813c();
|
||||
DATARMNET8c0e010dfb();DATARMNETe5b03fe375();DATARMNETad43e44c7e();}static int
|
||||
DATARMNET38ebe8f319(struct sk_buff*DATARMNET543491eb0f,int DATARMNET1faf88208b){
|
||||
if(!pskb_may_pull(DATARMNET543491eb0f,DATARMNET1faf88208b))return-ENOMEM;if(!
|
||||
skb_cloned(DATARMNET543491eb0f)||skb_clone_writable(DATARMNET543491eb0f,
|
||||
DATARMNET1faf88208b))return(0xd2d+202-0xdf7);return pskb_expand_head(
|
||||
DATARMNET543491eb0f,(0xd2d+202-0xdf7),(0xd2d+202-0xdf7),GFP_ATOMIC);}static void
|
||||
DATARMNET9a8d756527(__sum16*DATARMNETc2284e5688,struct sk_buff*
|
||||
DATARMNET543491eb0f,__be32 DATARMNET9080427d4e,__be32 DATARMNETc0e620c987,bool
|
||||
DATARMNETcb0345b337){if(DATARMNET543491eb0f->ip_summed!=CHECKSUM_PARTIAL){
|
||||
csum_replace4(DATARMNETc2284e5688,DATARMNET9080427d4e,DATARMNETc0e620c987);if(
|
||||
DATARMNET543491eb0f->ip_summed==CHECKSUM_COMPLETE&&DATARMNETcb0345b337){
|
||||
DATARMNET543491eb0f->csum=csum_sub(~(DATARMNET543491eb0f->csum),(__wsum)
|
||||
DATARMNET9080427d4e);DATARMNET543491eb0f->csum=~csum_add(DATARMNET543491eb0f->
|
||||
@@ -437,38 +451,53 @@ IFNAMSIZ);DATARMNET268a8314cf=register_netdevice_notifier(&DATARMNETa1726000d8);
|
||||
if(DATARMNET268a8314cf){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
||||
);DATARMNET30500ba48c[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);}return
|
||||
DATARMNET268a8314cf;}int DATARMNET92e5468fc5(char*DATARMNET852d4d00e2,struct
|
||||
genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;if(!strncmp(
|
||||
DATARMNET755f0f0df8,DATARMNET852d4d00e2,IFNAMSIZ)){GENL_SET_ERR_MSG(
|
||||
DATARMNET54338da2ff,
|
||||
"\x44\x65\x76\x69\x63\x65\x20\x69\x73\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x73\x65\x74"
|
||||
);return(0xd2d+202-0xdf7);}DATARMNET268a8314cf=DATARMNET56777c5470();if(
|
||||
DATARMNET268a8314cf){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x75\x6e\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
||||
);return DATARMNET268a8314cf;}strlcpy(DATARMNET755f0f0df8,DATARMNET852d4d00e2,
|
||||
IFNAMSIZ);DATARMNET268a8314cf=register_netdevice_notifier(&DATARMNET2c4484aef5);
|
||||
if(DATARMNET268a8314cf){GENL_SET_ERR_MSG(DATARMNET54338da2ff,
|
||||
"\x4b\x65\x72\x6e\x65\x6c\x20\x65\x72\x72\x6f\x72\x2c\x20\x6e\x6f\x74\x69\x66\x69\x65\x72\x20\x66\x61\x69\x6c\x65\x64"
|
||||
);DATARMNET755f0f0df8[(0xd2d+202-0xdf7)]=(0xd2d+202-0xdf7);}return
|
||||
DATARMNET268a8314cf;}int DATARMNETa903cd5994(char*DATARMNET852d4d00e2,struct
|
||||
genl_info*DATARMNET54338da2ff){return DATARMNET116f9a46aa();}int
|
||||
DATARMNET947eb110d2(struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct
|
||||
DATARMNET9d7bb9a63d(char*DATARMNET852d4d00e2,struct genl_info*
|
||||
DATARMNET54338da2ff){return DATARMNET56777c5470();}int DATARMNET947eb110d2(
|
||||
struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct genl_info*
|
||||
DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&DATARMNETf46fb02ac6);
|
||||
DATARMNET268a8314cf=DATARMNET1ac13d5a2a(DATARMNET2d4b4cfc9e,DATARMNET54338da2ff)
|
||||
;mutex_unlock(&DATARMNETf46fb02ac6);return DATARMNET268a8314cf;}int
|
||||
DATARMNETb8b35fdc18(struct DATARMNET8d3c2559ca*DATARMNET2d4b4cfc9e,struct
|
||||
genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&
|
||||
DATARMNETf46fb02ac6);DATARMNET268a8314cf=DATARMNET1ac13d5a2a(DATARMNET2d4b4cfc9e
|
||||
DATARMNETf46fb02ac6);DATARMNET268a8314cf=DATARMNET6b6be8e27f(DATARMNET2d4b4cfc9e
|
||||
,DATARMNET54338da2ff);mutex_unlock(&DATARMNETf46fb02ac6);return
|
||||
DATARMNET268a8314cf;}int DATARMNETb8b35fdc18(struct DATARMNET8d3c2559ca*
|
||||
DATARMNET2d4b4cfc9e,struct genl_info*DATARMNET54338da2ff){int
|
||||
DATARMNET268a8314cf;mutex_lock(&DATARMNETf46fb02ac6);DATARMNET268a8314cf=
|
||||
DATARMNET6b6be8e27f(DATARMNET2d4b4cfc9e,DATARMNET54338da2ff);mutex_unlock(&
|
||||
DATARMNETf46fb02ac6);return DATARMNET268a8314cf;}int DATARMNET8d5a5a7047(__be16
|
||||
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){int
|
||||
DATARMNET268a8314cf;mutex_lock(&DATARMNET954bef55d0);DATARMNET268a8314cf=
|
||||
DATARMNET3b10d1c14b(DATARMNETf0d9de7e2f,DATARMNET54338da2ff);mutex_unlock(&
|
||||
DATARMNET954bef55d0);return DATARMNET268a8314cf;}int DATARMNETc97c6a4265(__be16
|
||||
DATARMNETf0d9de7e2f,struct genl_info*DATARMNET54338da2ff){int
|
||||
DATARMNET268a8314cf;mutex_lock(&DATARMNET954bef55d0);DATARMNET268a8314cf=
|
||||
DATARMNETc023021120(DATARMNETf0d9de7e2f,DATARMNET54338da2ff);mutex_unlock(&
|
||||
DATARMNET954bef55d0);return DATARMNET268a8314cf;}bool DATARMNETa8b2566e6a(struct
|
||||
sk_buff*DATARMNET543491eb0f,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int
|
||||
DATARMNET611d08d671){struct udphdr*DATARMNET75be5f3406,DATARMNETc82d2f4e16;
|
||||
__be32*DATARMNETdf2dbc641f,DATARMNET6c56902362;if(DATARMNET3396919a68->
|
||||
DATARMNET4924e79411!=IPPROTO_UDP||!DATARMNET7490934ea9(DATARMNET3396919a68->
|
||||
DATARMNETf0d9de7e2f))return false;DATARMNET75be5f3406=skb_header_pointer(
|
||||
DATARMNET543491eb0f,DATARMNET611d08d671,sizeof(*DATARMNET75be5f3406),&
|
||||
DATARMNETc82d2f4e16);if(!DATARMNET75be5f3406)return false;if(DATARMNET75be5f3406
|
||||
->source==htons((0xdf7+6169-0x241c)))return false;DATARMNETdf2dbc641f=
|
||||
skb_header_pointer(DATARMNET543491eb0f,DATARMNET611d08d671+sizeof(*
|
||||
DATARMNET75be5f3406),sizeof(*DATARMNETdf2dbc641f),&DATARMNET6c56902362);if(!
|
||||
DATARMNETdf2dbc641f)return false;return!!(*DATARMNETdf2dbc641f);}bool
|
||||
DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*DATARMNET3396919a68){return
|
||||
DATARMNETa96214b53c(DATARMNET3396919a68->DATARMNETf0d9de7e2f);}int
|
||||
DATARMNET078f6bd384(void){DATARMNETbb4efa5b3d();return(0xd2d+202-0xdf7);}void
|
||||
DATARMNETfae36afa03(void){DATARMNETbb4efa5b3d();}char*DATARMNET934406764d(void){
|
||||
return DATARMNET30500ba48c;}
|
||||
DATARMNET268a8314cf;}int DATARMNET8d5a5a7047(__be16 DATARMNETf0d9de7e2f,struct
|
||||
genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&
|
||||
DATARMNET954bef55d0);DATARMNET268a8314cf=DATARMNET3b10d1c14b(DATARMNETf0d9de7e2f
|
||||
,DATARMNET54338da2ff);mutex_unlock(&DATARMNET954bef55d0);return
|
||||
DATARMNET268a8314cf;}int DATARMNETc97c6a4265(__be16 DATARMNETf0d9de7e2f,struct
|
||||
genl_info*DATARMNET54338da2ff){int DATARMNET268a8314cf;mutex_lock(&
|
||||
DATARMNET954bef55d0);DATARMNET268a8314cf=DATARMNETc023021120(DATARMNETf0d9de7e2f
|
||||
,DATARMNET54338da2ff);mutex_unlock(&DATARMNET954bef55d0);return
|
||||
DATARMNET268a8314cf;}bool DATARMNETa8b2566e6a(struct sk_buff*DATARMNET543491eb0f
|
||||
,struct DATARMNETb89ecedefc*DATARMNET3396919a68,int DATARMNET611d08d671){struct
|
||||
udphdr*DATARMNET75be5f3406,DATARMNETc82d2f4e16;__be32*DATARMNETdf2dbc641f,
|
||||
DATARMNET6c56902362;if(DATARMNET3396919a68->DATARMNET4924e79411!=IPPROTO_UDP||!
|
||||
DATARMNET7490934ea9(DATARMNET3396919a68->DATARMNETf0d9de7e2f))return false;
|
||||
DATARMNET75be5f3406=skb_header_pointer(DATARMNET543491eb0f,DATARMNET611d08d671,
|
||||
sizeof(*DATARMNET75be5f3406),&DATARMNETc82d2f4e16);if(!DATARMNET75be5f3406)
|
||||
return false;if(DATARMNET75be5f3406->source==htons((0xdf7+6169-0x241c)))return
|
||||
false;DATARMNETdf2dbc641f=skb_header_pointer(DATARMNET543491eb0f,
|
||||
DATARMNET611d08d671+sizeof(*DATARMNET75be5f3406),sizeof(*DATARMNETdf2dbc641f),&
|
||||
DATARMNET6c56902362);if(!DATARMNETdf2dbc641f)return false;return!!(*
|
||||
DATARMNETdf2dbc641f);}bool DATARMNET0a4704e5e0(struct DATARMNETb89ecedefc*
|
||||
DATARMNET3396919a68){return DATARMNETa96214b53c(DATARMNET3396919a68->
|
||||
DATARMNETf0d9de7e2f);}int DATARMNET078f6bd384(void){DATARMNETbb4efa5b3d();return
|
||||
(0xd2d+202-0xdf7);}void DATARMNETfae36afa03(void){DATARMNETbb4efa5b3d();}char*
|
||||
DATARMNET934406764d(void){return DATARMNET30500ba48c;}char*DATARMNETe447822105(
|
||||
void){return DATARMNET755f0f0df8;}
|
||||
|
@@ -14,14 +14,19 @@ DATARMNETf4c2a83526,DATARMNET591885a019,DATARMNETd8273aa7e1,DATARMNET7a58a5c1fc,
|
||||
DATARMNETba232077da,DATARMNETe75ad1a949,DATARMNETd691057b85,DATARMNETd1ad664d00,
|
||||
DATARMNETef2af4f071,DATARMNETebc1b87b7d,DATARMNET21bdbe6a27,DATARMNET90782e08cf,
|
||||
DATARMNETb7c9f010b2,DATARMNET990edaea89,DATARMNETa726eebea4,DATARMNET0981317411,
|
||||
DATARMNETc6bf075f65,};enum{DATARMNETc1b437465b,DATARMNET04311361a2,
|
||||
DATARMNET43a65c0be7,DATARMNET13bbe5f5c5,DATARMNETd1c349b9fc,DATARMNETfa4b3dd44a,
|
||||
DATARMNET72ab5e86d8,DATARMNET0e6bd55b8b,DATARMNET64aecaa865,DATARMNET72f4fdd48a,
|
||||
DATARMNET9cff15f94d,DATARMNETbf6e6853f9,DATARMNETa0da722329,DATARMNET729e252fb9,
|
||||
DATARMNET6b0ed53aab,DATARMNET22ac945cae,DATARMNET97b44d0c09,DATARMNETf954265acb,
|
||||
DATARMNET15454f969d,DATARMNET9bdb1c4072,DATARMNET9a57ef32d3,DATARMNET9a940d93dc,
|
||||
DATARMNETf326b7c906,DATARMNET544d78ede7,DATARMNET5abdc89190,DATARMNET101af46c1c,
|
||||
DATARMNETfe1714cc0e,};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void
|
||||
DATARMNET17f6bc1be5(u32 DATARMNET248f120dd5);
|
||||
DATARMNETb59245fef4,DATARMNETf1f7e2c408,DATARMNETc6bf075f65,};enum{
|
||||
DATARMNETc1b437465b,DATARMNET04311361a2,DATARMNET43a65c0be7,DATARMNET13bbe5f5c5,
|
||||
DATARMNETd1c349b9fc,DATARMNETfa4b3dd44a,DATARMNET72ab5e86d8,DATARMNET0e6bd55b8b,
|
||||
DATARMNET64aecaa865,DATARMNET72f4fdd48a,DATARMNET9cff15f94d,DATARMNETbf6e6853f9,
|
||||
DATARMNETa0da722329,DATARMNET729e252fb9,DATARMNET6b0ed53aab,DATARMNET22ac945cae,
|
||||
DATARMNET97b44d0c09,DATARMNETf954265acb,DATARMNET15454f969d,DATARMNET9bdb1c4072,
|
||||
DATARMNET9a57ef32d3,DATARMNET9a940d93dc,DATARMNETf326b7c906,DATARMNET544d78ede7,
|
||||
DATARMNET5abdc89190,DATARMNET101af46c1c,DATARMNET0b9541c9b3,DATARMNET0078f1d36d,
|
||||
DATARMNET661bdeccd4,DATARMNET28e7704d13,DATARMNET7c6c30b7d2,DATARMNET39d80cc483,
|
||||
DATARMNET1be480319c,DATARMNET15d1a78b15,DATARMNETddb1bc27cb,DATARMNETc730640bf7,
|
||||
DATARMNET521b065310,DATARMNET8a15bcdcc7,DATARMNET0978ff973f,DATARMNETc52168a41e,
|
||||
DATARMNET666fc9a664,DATARMNET7803c877c0,DATARMNET4c5aeeb476,DATARMNETfe1714cc0e,
|
||||
};void DATARMNET5ca94dbc3c(u32 DATARMNET248f120dd5);void DATARMNET17f6bc1be5(u32
|
||||
DATARMNET248f120dd5);
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user