Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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-RAN
Commits
7d226224
Commit
7d226224
authored
Sep 07, 2018
by
laurent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix nasmesh kernel 4.15
parent
c8eb68d5
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 @
7d226224
...
...
@@ -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 @
7d226224
...
...
@@ -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 @
7d226224
...
...
@@ -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 @
7d226224
...
...
@@ -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 @
7d226224
...
...
@@ -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 @
7d226224
...
...
@@ -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