Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
c7c6575f
Commit
c7c6575f
authored
Dec 12, 2011
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'batman-adv/next' of
git://git.open-mesh.org/linux-merge
parents
0850f0f5
b5a1eeef
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
216 additions
and
168 deletions
+216
-168
Documentation/networking/batman-adv.txt
Documentation/networking/batman-adv.txt
+4
-3
net/batman-adv/gateway_client.c
net/batman-adv/gateway_client.c
+1
-1
net/batman-adv/icmp_socket.c
net/batman-adv/icmp_socket.c
+4
-10
net/batman-adv/routing.c
net/batman-adv/routing.c
+1
-2
net/batman-adv/soft-interface.c
net/batman-adv/soft-interface.c
+1
-1
net/batman-adv/translation-table.c
net/batman-adv/translation-table.c
+195
-141
net/batman-adv/types.h
net/batman-adv/types.h
+7
-7
net/batman-adv/vis.c
net/batman-adv/vis.c
+3
-3
No files found.
Documentation/networking/batman-adv.txt
View file @
c7c6575f
...
...
@@ -200,15 +200,16 @@ abled during run time. Following log_levels are defined:
0 - All debug output disabled
1 - Enable messages related to routing / flooding / broadcasting
2 - Enable route or tt entry added / changed / deleted
3 - Enable all messages
2 - Enable messages related to route added / changed / deleted
4 - Enable messages related to translation table operations
7 - Enable all messages
The debug output can be changed at runtime using the file
/sys/class/net/bat0/mesh/log_level. e.g.
# echo 2 > /sys/class/net/bat0/mesh/log_level
will enable debug messages for when routes
or TTs
change.
will enable debug messages for when routes change.
BATCTL
...
...
net/batman-adv/gateway_client.c
View file @
c7c6575f
...
...
@@ -695,7 +695,7 @@ bool gw_out_of_range(struct bat_priv *bat_priv,
}
neigh_old
=
find_router
(
bat_priv
,
orig_dst_node
,
NULL
);
if
(
!
!
neigh_old
)
if
(
!
neigh_old
)
goto
out
;
if
(
curr_tq_avg
-
neigh_old
->
tq_avg
>
GW_THRESHOLD
)
...
...
net/batman-adv/icmp_socket.c
View file @
c7c6575f
...
...
@@ -136,10 +136,9 @@ static ssize_t bat_socket_read(struct file *file, char __user *buf,
spin_unlock_bh
(
&
socket_client
->
lock
);
error
=
__copy_to_user
(
buf
,
&
socket_packet
->
icmp_packet
,
socket_packet
->
icmp
_len
);
packet_len
=
min
(
count
,
socket_packet
->
icmp_len
);
error
=
copy_to_user
(
buf
,
&
socket_packet
->
icmp_packet
,
packet
_len
);
packet_len
=
socket_packet
->
icmp_len
;
kfree
(
socket_packet
);
if
(
error
)
...
...
@@ -187,12 +186,7 @@ static ssize_t bat_socket_write(struct file *file, const char __user *buff,
skb_reserve
(
skb
,
sizeof
(
struct
ethhdr
));
icmp_packet
=
(
struct
icmp_packet_rr
*
)
skb_put
(
skb
,
packet_len
);
if
(
!
access_ok
(
VERIFY_READ
,
buff
,
packet_len
))
{
len
=
-
EFAULT
;
goto
free_skb
;
}
if
(
__copy_from_user
(
icmp_packet
,
buff
,
packet_len
))
{
if
(
copy_from_user
(
icmp_packet
,
buff
,
packet_len
))
{
len
=
-
EFAULT
;
goto
free_skb
;
}
...
...
@@ -217,7 +211,7 @@ static ssize_t bat_socket_write(struct file *file, const char __user *buff,
if
(
icmp_packet
->
version
!=
COMPAT_VERSION
)
{
icmp_packet
->
msg_type
=
PARAMETER_PROBLEM
;
icmp_packet
->
ttl
=
COMPAT_VERSION
;
icmp_packet
->
version
=
COMPAT_VERSION
;
bat_socket_add_packet
(
socket_client
,
icmp_packet
,
packet_len
);
goto
free_skb
;
}
...
...
net/batman-adv/routing.c
View file @
c7c6575f
...
...
@@ -627,8 +627,7 @@ int recv_tt_query(struct sk_buff *skb, struct hard_iface *recv_if)
/* Ensure we have all the claimed data */
if
(
unlikely
(
skb_headlen
(
skb
)
<
sizeof
(
struct
tt_query_packet
)
+
tt_len
))
sizeof
(
struct
tt_query_packet
)
+
tt_len
))
goto
out
;
handle_tt_response
(
bat_priv
,
tt_query
);
...
...
net/batman-adv/soft-interface.c
View file @
c7c6575f
...
...
@@ -874,7 +874,7 @@ struct net_device *softif_create(const char *name)
unreg_sysfs:
sysfs_del_meshif
(
soft_iface
);
unreg_soft_iface:
unregister_netdev
(
soft_iface
);
unregister_netdev
ice
(
soft_iface
);
return
NULL
;
free_soft_iface:
...
...
net/batman-adv/translation-table.c
View file @
c7c6575f
This diff is collapsed.
Click to expand it.
net/batman-adv/types.h
View file @
c7c6575f
...
...
@@ -222,24 +222,24 @@ struct socket_packet {
struct
icmp_packet_rr
icmp_packet
;
};
struct
tt_
local
_entry
{
struct
tt_
common
_entry
{
uint8_t
addr
[
ETH_ALEN
];
struct
hlist_node
hash_entry
;
unsigned
long
last_seen
;
uint16_t
flags
;
atomic_t
refcount
;
struct
rcu_head
rcu
;
};
struct
tt_local_entry
{
struct
tt_common_entry
common
;
unsigned
long
last_seen
;
};
struct
tt_global_entry
{
uint8_t
addr
[
ETH_ALEN
];
struct
hlist_node
hash_entry
;
/* entry in the global table */
struct
tt_common_entry
common
;
struct
orig_node
*
orig_node
;
uint8_t
ttvn
;
uint16_t
flags
;
/* only TT_GLOBAL_ROAM is used */
unsigned
long
roam_at
;
/* time at which TT_GLOBAL_ROAM was set */
atomic_t
refcount
;
struct
rcu_head
rcu
;
};
struct
tt_change_node
{
...
...
net/batman-adv/vis.c
View file @
c7c6575f
...
...
@@ -609,7 +609,7 @@ static int generate_vis_packet(struct bat_priv *bat_priv)
struct
vis_info
*
info
=
bat_priv
->
my_vis_info
;
struct
vis_packet
*
packet
=
(
struct
vis_packet
*
)
info
->
skb_packet
->
data
;
struct
vis_info_entry
*
entry
;
struct
tt_
local_entry
*
tt_local
_entry
;
struct
tt_
common_entry
*
tt_common
_entry
;
int
best_tq
=
-
1
;
uint32_t
i
;
...
...
@@ -672,13 +672,13 @@ static int generate_vis_packet(struct bat_priv *bat_priv)
head
=
&
hash
->
table
[
i
];
rcu_read_lock
();
hlist_for_each_entry_rcu
(
tt_
local
_entry
,
node
,
head
,
hlist_for_each_entry_rcu
(
tt_
common
_entry
,
node
,
head
,
hash_entry
)
{
entry
=
(
struct
vis_info_entry
*
)
skb_put
(
info
->
skb_packet
,
sizeof
(
*
entry
));
memset
(
entry
->
src
,
0
,
ETH_ALEN
);
memcpy
(
entry
->
dest
,
tt_
local
_entry
->
addr
,
ETH_ALEN
);
memcpy
(
entry
->
dest
,
tt_
common
_entry
->
addr
,
ETH_ALEN
);
entry
->
quality
=
0
;
/* 0 means TT */
packet
->
entries
++
;
...
...
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