Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
N
nextgen-router
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
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
MyCard
nextgen-router
Commits
942a98aa
Commit
942a98aa
authored
Dec 10, 2020
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
allow no origin
parent
d28267b2
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
11 deletions
+18
-11
files/bridge-post-scripts/post-up.sh.j2
files/bridge-post-scripts/post-up.sh.j2
+8
-5
files/bridge-post-scripts/pre-down.sh.j2
files/bridge-post-scripts/pre-down.sh.j2
+9
-5
files/utility.sh.j2
files/utility.sh.j2
+1
-1
No files found.
files/bridge-post-scripts/post-up.sh.j2
View file @
942a98aa
...
...
@@ -24,24 +24,27 @@ handle_gateway() {
GATEWAY_ID
=
$1
GATEWAY_ADDRESS
=
$2
GATEWAY_MAC
=
$3
GATEWAY_NO_ORIGIN
=
$4
GATEWAY_NEXT_HOP_MARK
=
$[$GATEWAY_ID
+ 1100]
BRIDGE_IP
=
$(
ip
-4
addr show dev
"
$BRIDGE_NAME
"
|
grep
'inet '
|
awk
'{print $2}'
)
if
[[
"
$GATEWAY_ADDRESS
"
-eq
"
_use_first"
]]
;
then
if
[[
"
_
$GATEWAY_ADDRESS
"
-eq
"_
_use_first"
]]
;
then
GATEWAY_ADDRESS
=
$(
subnetcalc
"
$BRIDGE_IP
"
-n
|
grep
"Host Range"
|
awk
'{print $5}'
)
fi
if
[[
"
$GATEWAY_ADDRESS
"
-eq
"
_use_last"
]]
;
then
if
[[
"
_
$GATEWAY_ADDRESS
"
-eq
"_
_use_last"
]]
;
then
GATEWAY_ADDRESS
=
$(
subnetcalc
"
$BRIDGE_IP
"
-n
|
grep
"Host Range"
|
awk
'{print $7}'
)
fi
ip route add default via
"
$GATEWAY_ADDRESS
"
table
"
$GATEWAY_NEXT_HOP_MARK
"
ip route add default via
"
$GATEWAY_ADDRESS
"
metric
"
$GATEWAY_NEXT_HOP_MARK
"
if
[[
"
$GATEWAY_NO_ORIGIN
"
-eq
0
]]
;
then
ip rule add pref 100 fwmark
"
$GATEWAY_NEXT_HOP_MARK
"
lookup
"
$GATEWAY_NEXT_HOP_MARK
"
eth_origin
-A
"
$BRIDGE_NAME
"
"
$GATEWAY_ID
"
"
$GATEWAY_ADDRESS
"
"
$GATEWAY_MAC
"
fi
}
{
%
if
br.gateways %
}
# Gateways
{
%
for
gateway
in
br.gateways %
}
handle_gateway
{{
gateway.id
}}
{{
gateway.address
}}
{
%
if
gateway.mac %
}
{{
gateway.mac
}}
{
% endif %
}
handle_gateway
{{
gateway.id
}}
{{
gateway.address
}}
{
%
if
gateway.mac %
}{{
gateway.mac
}}{
%
else
%
}
"unknown"
{
% endif %
}
{
%
if
gateway.noOrigin %
}
1
{
%
else
%
}
0
{
% endif %
}
{
% endfor %
}
{
% endif %
}
...
...
files/bridge-post-scripts/pre-down.sh.j2
View file @
942a98aa
...
...
@@ -16,22 +16,26 @@ handle_gateway() {
GATEWAY_ID
=
$1
GATEWAY_ADDRESS
=
$2
GATEWAY_MAC
=
$3
GATEWAY_NO_ORIGIN
=
$4
GATEWAY_NEXT_HOP_MARK
=
$[$GATEWAY_ID
+ 1100]
BRIDGE_IP
=
$(
ip
-4
addr show dev
"
$BRIDGE_NAME
"
|
grep
'inet '
|
awk
'{print $2}'
)
if
[[
"
$GATEWAY_ADDRESS
"
-eq
"
_use_first"
]]
;
then
if
[[
"
_
$GATEWAY_ADDRESS
"
-eq
"_
_use_first"
]]
;
then
GATEWAY_ADDRESS
=
$(
subnetcalc
"
$BRIDGE_IP
"
-n
|
grep
"Host Range"
|
awk
'{print $5}'
)
fi
if
[[
"
$GATEWAY_ADDRESS
"
-eq
"
_use_last"
]]
;
then
if
[[
"
_
$GATEWAY_ADDRESS
"
-eq
"_
_use_last"
]]
;
then
GATEWAY_ADDRESS
=
$(
subnetcalc
"
$BRIDGE_IP
"
-n
|
grep
"Host Range"
|
awk
'{print $7}'
)
fi
if
[[
"
$GATEWAY_NO_ORIGIN
"
-eq
0
]]
;
then
ip rule del pref 100 fwmark
"
$GATEWAY_NEXT_HOP_MARK
"
lookup
"
$GATEWAY_NEXT_HOP_MARK
"
eth_origin
-D
"
$BRIDGE_NAME
"
"
$GATEWAY_ID
"
"
$GATEWAY_ADDRESS
"
"
$GATEWAY_MAC
"
fi
}
{
%
if
br.gateways %
}
# Gateways
{
%
for
gateway
in
br.gateways %
}
handle_gateway
{{
gateway.id
}}
{{
gateway.address
}}
{
%
if
gateway.mac %
}
{{
gateway.mac
}}
{
% endif %
}
handle_gateway
{{
gateway.id
}}
{{
gateway.address
}}
{
%
if
gateway.mac %
}{{
gateway.mac
}}{
%
else
%
}
"unknown"
{
% endif %
}
{
%
if
gateway.noOrigin %
}
1
{
%
else
%
}
0
{
% endif %
}
{
% endfor %
}
{
% endif %
}
...
...
files/utility.sh.j2
View file @
942a98aa
...
...
@@ -36,7 +36,7 @@ eth_origin() {
GATEWAY_ADDRESS=$4
GATEWAY_MAC=$5
MARK=$[1100 + $GATEWAY_ID]
if [[
-z "$GATEWAY_MAC
" ]]; then
if [[
"$GATEWAY_MAC" -eq "unknown
" ]]; then
ping "$GATEWAY_ADDRESS" -c 1
NEIGH_LINE=$(ip neigh show "$GATEWAY_ADDRESS")
GATEWAY_MAC=$(echo $NEIGH_LINE | awk '{print $5}')
...
...
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