Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
1af32f0f
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1af32f0f
编写于
12月 07, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'batman-adv/maint' of
git://git.open-mesh.org/linux-merge
上级
28d8ea2d
797399b4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
5 deletion
+22
-5
net/batman-adv/translation-table.c
net/batman-adv/translation-table.c
+22
-5
未找到文件。
net/batman-adv/translation-table.c
浏览文件 @
1af32f0f
...
...
@@ -245,9 +245,11 @@ void tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
if
(
tt_global_entry
)
{
/* This node is probably going to update its tt table */
tt_global_entry
->
orig_node
->
tt_poss_change
=
true
;
/* The global entry has to be marked as
PEND
ING and has to be
/* The global entry has to be marked as
ROAM
ING and has to be
* kept for consistency purpose */
tt_global_entry
->
flags
|=
TT_CLIENT_PENDING
;
tt_global_entry
->
flags
|=
TT_CLIENT_ROAM
;
tt_global_entry
->
roam_at
=
jiffies
;
send_roam_adv
(
bat_priv
,
tt_global_entry
->
addr
,
tt_global_entry
->
orig_node
);
}
...
...
@@ -694,6 +696,7 @@ void tt_global_del(struct bat_priv *bat_priv,
const
char
*
message
,
bool
roaming
)
{
struct
tt_global_entry
*
tt_global_entry
=
NULL
;
struct
tt_local_entry
*
tt_local_entry
=
NULL
;
tt_global_entry
=
tt_global_hash_find
(
bat_priv
,
addr
);
if
(
!
tt_global_entry
)
...
...
@@ -701,15 +704,29 @@ void tt_global_del(struct bat_priv *bat_priv,
if
(
tt_global_entry
->
orig_node
==
orig_node
)
{
if
(
roaming
)
{
tt_global_entry
->
flags
|=
TT_CLIENT_ROAM
;
tt_global_entry
->
roam_at
=
jiffies
;
goto
out
;
/* if we are deleting a global entry due to a roam
* event, there are two possibilities:
* 1) the client roamed from node A to node B => we mark
* it with TT_CLIENT_ROAM, we start a timer and we
* wait for node B to claim it. In case of timeout
* the entry is purged.
* 2) the client roamed to us => we can directly delete
* the global entry, since it is useless now. */
tt_local_entry
=
tt_local_hash_find
(
bat_priv
,
tt_global_entry
->
addr
);
if
(
!
tt_local_entry
)
{
tt_global_entry
->
flags
|=
TT_CLIENT_ROAM
;
tt_global_entry
->
roam_at
=
jiffies
;
goto
out
;
}
}
_tt_global_del
(
bat_priv
,
tt_global_entry
,
message
);
}
out:
if
(
tt_global_entry
)
tt_global_entry_free_ref
(
tt_global_entry
);
if
(
tt_local_entry
)
tt_local_entry_free_ref
(
tt_local_entry
);
}
void
tt_global_del_orig
(
struct
bat_priv
*
bat_priv
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录