Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG UE
Commits
cb2e8cb9
Commit
cb2e8cb9
authored
Sep 07, 2018
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix nasmesh kernel 4.15
parent
d6db9795
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
24 additions
and
14 deletions
+24
-14
openair2/NETWORK_DRIVER/MESH/classifier.c
openair2/NETWORK_DRIVER/MESH/classifier.c
+2
-2
openair2/NETWORK_DRIVER/MESH/common.c
openair2/NETWORK_DRIVER/MESH/common.c
+3
-4
openair2/NETWORK_DRIVER/MESH/device.c
openair2/NETWORK_DRIVER/MESH/device.c
+3
-3
openair2/NETWORK_DRIVER/MESH/mesh.c
openair2/NETWORK_DRIVER/MESH/mesh.c
+14
-2
openair2/NETWORK_DRIVER/MESH/proto_extern.h
openair2/NETWORK_DRIVER/MESH/proto_extern.h
+0
-1
openair2/NETWORK_DRIVER/MESH/tool.c
openair2/NETWORK_DRIVER/MESH/tool.c
+2
-2
No files found.
openair2/NETWORK_DRIVER/MESH/classifier.c
View file @
cb2e8cb9
...
...
@@ -410,7 +410,7 @@ struct cx_entity *nas_CLASS_cx6(struct sk_buff *skb,
#endif //NAS_DEBUG_CLASS
//if ((dst = (unsigned int*)&(((struct rt6_info *)skbdst)->rt6i_gateway)) == 0){
if
(
(
dst
=
((
struct
iphdr
*
)(
skb_network_header
(
skb
)))
->
daddr
)
==
0
)
{
if
(
(
dst
=
&
((
struct
iphdr
*
)(
skb_network_header
(
skb
)))
->
daddr
)
==
NULL
)
{
printk
(
"nas_CLASS_cx6: dst addr is null
\n
"
);
p
=
p
->
next
;
...
...
@@ -475,7 +475,7 @@ struct cx_entity *nas_CLASS_cx4(struct sk_buff *skb,
if
(
skb
!=
NULL
)
{
daddr
=
((
struct
iphdr
*
)(
skb_network_header
(
skb
)))
->
daddr
;
if
(
daddr
!=
NULL
)
{
if
(
daddr
!=
0
)
{
#ifdef NAS_DEBUG_CLASS
printk
(
"[NAS][CLASS][IPv4] Searching for %d.%d.%d.%d
\n
"
,
...
...
openair2/NETWORK_DRIVER/MESH/common.c
View file @
cb2e8cb9
...
...
@@ -53,17 +53,14 @@ void nas_COMMON_receive(uint16_t dlen,
struct
sk_buff
*
skb
;
struct
ipversion
*
ipv
;
struct
nas_priv
*
gpriv
=
netdev_priv
(
nasdev
[
inst
]);
uint32_t
odaddr
,
osaddr
;
//int i;
unsigned
char
protocol
;
unsigned
char
/**addr,*/
*
daddr
,
*
saddr
,
*
ifaddr
/*,sn*/
;
//struct udphdr *uh;
//struct tcphdr *th;
uint16_t
*
cksum
,
check
;
struct
iphdr
*
network_header
;
...
...
@@ -114,11 +111,12 @@ void nas_COMMON_receive(uint16_t dlen,
// Make the third byte of both the source and destination equal to the fourth of the destination
unsigned
char
*
ifaddr
,
*
saddr
,
daddr
;
daddr
=
(
unsigned
char
*
)
&
((
struct
iphdr
*
)
skb
->
data
)
->
daddr
;
odaddr
=
((
struct
iphdr
*
)
skb
->
data
)
->
daddr
;
// sn = addr[3];
saddr
=
(
unsigned
char
*
)
&
((
struct
iphdr
*
)
skb
->
data
)
->
saddr
;
uint32_t
odaddr
,
osaddr
;
osaddr
=
((
struct
iphdr
*
)
skb
->
data
)
->
saddr
;
if
(
daddr
[
0
]
==
saddr
[
0
])
{
// same network
...
...
@@ -219,6 +217,7 @@ void nas_COMMON_receive(uint16_t dlen,
case
IPPROTO_TCP
:
uint16_t
*
cksum
,
check
;
cksum
=
(
uint16_t
*
)
&
(((
struct
tcphdr
*
)(((
char
*
)
network_header
+
(
network_header
->
ihl
<<
2
))))
->
check
);
//check = csum_tcpudp_magic(((struct iphdr *)network_header)->saddr, ((struct iphdr *)network_header)->daddr, tcp_hdrlen(skb), IPPROTO_TCP, ~(*cksum));
...
...
openair2/NETWORK_DRIVER/MESH/device.c
View file @
cb2e8cb9
...
...
@@ -241,7 +241,7 @@ int nas_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
// End debug information
netif_stop_queue
(
dev
);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) ||
RHEL_RELEASE_CODE>=1796
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) ||
(defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE>=1796)
netif_trans_update
(
dev
);
#else
dev
->
trans_start
=
jiffies
;
...
...
@@ -306,7 +306,7 @@ void nas_tx_timeout(struct net_device *dev)
printk
(
"TX_TIMEOUT: begin
\n
"
);
// (struct nas_priv *)(dev->priv)->stats.tx_errors++;
(
priv
->
stats
).
tx_errors
++
;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) ||
RHEL_RELEASE_CODE>=1796
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0) ||
(defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE>=1796)
netif_trans_update
(
dev
);
#else
dev
->
trans_start
=
jiffies
;
...
...
@@ -324,7 +324,7 @@ static const struct net_device_ops nasmesh_netdev_ops = {
.
ndo_set_mac_address
=
NULL
,
.
ndo_set_config
=
nas_set_config
,
.
ndo_do_ioctl
=
nas_CTL_ioctl
,
#if
RHEL_RELEASE_CODE>=1797
#if
(defined RHEL_RELEASE_CODE && RHEL_RELEASE_CODE>=1797)
.
extended
.
ndo_change_mtu
=
nas_change_mtu
,
#else
.
ndo_change_mtu
=
nas_change_mtu
,
...
...
openair2/NETWORK_DRIVER/MESH/mesh.c
View file @
cb2e8cb9
...
...
@@ -30,7 +30,7 @@
***************************************************************************/
#include <linux/version.h>
#include "local.h"
#include "proto_extern.h"
...
...
@@ -155,10 +155,18 @@ void nas_mesh_start_default_sclassifier(struct cx_entity *cx,struct rb_entity *r
}
//---------------------------------------------------------------------------
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
void
nas_mesh_timer
(
struct
timer_list
*
t
)
#else
void
nas_mesh_timer
(
unsigned
long
data
)
#endif
{
//---------------------------------------------------------------------------
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
struct
nas_priv
*
gpriv
=
from_timer
(
gpriv
,
t
,
timer
);
#else
struct
nas_priv
*
gpriv
=
(
struct
nas_priv
*
)
data
;
#endif
uint8_t
cxi
;
struct
cx_entity
*
cx
;
struct
rb_entity
*
rb
;
...
...
@@ -166,10 +174,14 @@ void nas_mesh_timer(unsigned long data)
#ifdef NAS_DEBUG_TIMER
printk
(
"NAS_MESH_TIMER - begin
\n
"
);
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0))
timer_setup
(
&
gpriv
->
timer
,
nas_mesh_timer
,
0
);
mod_timer
(
&
gpriv
->
timer
,
jiffies
+
NAS_TIMER_TICK
);
#else
(
gpriv
->
timer
).
function
=
nas_mesh_timer
;
(
gpriv
->
timer
).
expires
=
jiffies
+
NAS_TIMER_TICK
;
(
gpriv
->
timer
).
data
=
data
;
#endif
return
;
...
...
openair2/NETWORK_DRIVER/MESH/proto_extern.h
View file @
cb2e8cb9
...
...
@@ -195,7 +195,6 @@ void nas_mesh_init(int inst //!< Instance ID
);
void
nas_mesh_timer
(
unsigned
long
data
);
int
nas_mesh_DC_receive
(
struct
cx_entity
*
cx
,
struct
nas_priv
*
gpriv
);
int
nas_mesh_GC_receive
(
struct
nas_priv
*
gpriv
);
...
...
openair2/NETWORK_DRIVER/MESH/tool.c
View file @
cb2e8cb9
...
...
@@ -679,11 +679,11 @@ void print_TOOL_pk_all(struct sk_buff *skb)
switch
(
ntohs
(
skb
->
protocol
))
{
case
ETH_P_IPV6
:
print_TOOL_pk_ipv6
((
struct
ipv6hdr
*
)
skb
->
network_header
);
print_TOOL_pk_ipv6
((
struct
ipv6hdr
*
)
skb
_network_header
(
skb
)
);
break
;
case
ETH_P_IP
:
print_TOOL_pk_ipv4
((
struct
iphdr
*
)
skb
->
network_header
);
print_TOOL_pk_ipv4
((
struct
iphdr
*
)
skb
_network_header
(
skb
)
);
break
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment