Commit 86c27c67 by Fukász Rómeó Ervin

Merge branch 'master' into ceph

parents 8036e1cf bf0de0cc
......@@ -22,6 +22,7 @@ AMQP_URI = getenv('AMQP_URI')
def to_bool(value):
return value.lower() in ("true", "yes", "y", "t")
lib_connection = None
native_ovs = False
......
......@@ -63,6 +63,8 @@ def build_flow_rule(
protocol=None,
nw_src=None,
ipv6_src=None,
icmp_type=None,
nd_target=None,
tp_dst=None,
priority=None,
actions=None):
......@@ -74,6 +76,8 @@ def build_flow_rule(
protocol - Protocol for the rule like ip,ipv6,arp,udp,tcp
nw_src - Source network IP(v4)
ipv6_src - Source network IP(v6)
icmp_type - ICMP/ICMPv6 type
nd_target - IPv6 Neighbor Discovery target IP(v6)
tp_dst - Destination port
priority - Rule priority
actions - Action for the matching rule
......@@ -89,6 +93,8 @@ def build_flow_rule(
('%s', protocol),
('nw_src=%s', nw_src),
('ipv6_src=%s', ipv6_src),
('icmp_type=%s', icmp_type),
('nd_target=%s', nd_target),
('tp_dst=%s', tp_dst),
('priority=%s', priority),
('actions=%s', actions)]
......@@ -158,13 +164,33 @@ def ipv4_filter(network, port_number, remove=False):
def ipv6_filter(network, port_number, remove=False):
""" Apply/Remove ipv6 filter rule to network. """
LINKLOCAL_SUBNET = "FE80::/64"
ICMPv6_NA = "136" # The type of IPv6 Neighbor Advertisement
if not remove:
# Enable Neighbor Advertisement from linklocal address
# if target ip same as network.ipv6
flow_cmd = build_flow_rule(in_port=port_number, dl_src=network.mac,
protocol="icmp6", ipv6_src=LINKLOCAL_SUBNET,
icmp_type=ICMPv6_NA,
nd_target=network.ipv6,
priority=42001, actions="normal")
ofctl_command_execute(["add-flow", network.bridge, flow_cmd])
# Enable traffic from valid source
flow_cmd = build_flow_rule(in_port=port_number, dl_src=network.mac,
protocol="ipv6", ipv6_src=network.ipv6,
priority=42000, actions="normal")
ofctl_command_execute(["add-flow", network.bridge, flow_cmd])
else:
flow_cmd = build_flow_rule(in_port=port_number, dl_src=network.mac,
protocol="icmp6", ipv6_src=LINKLOCAL_SUBNET,
icmp_type=ICMPv6_NA,
nd_target=network.ipv6)
ofctl_command_execute(["del-flows", network.bridge, flow_cmd])
flow_cmd = build_flow_rule(in_port=port_number, dl_src=network.mac,
protocol="ipv6", ipv6_src=network.ipv6)
ofctl_command_execute(["del-flows", network.bridge, flow_cmd])
......
......@@ -9,6 +9,7 @@ from argparse import ArgumentParser
def to_bool(value):
return value.lower() in ("true", "yes", "y", "t")
if to_bool(getenv("LIBVIRT_TEST", "False")):
HOSTNAME = "vmdriver.test"
else:
......
......@@ -114,9 +114,12 @@ class shutdown(AbortableTask):
def run(self, args):
from time import sleep
name, = args
logging.info("Shutdown started for vm: %s", name)
try:
domain = lookupByName(name)
logging.info("%s domain found in shutdown", name)
domain.shutdown()
logging.info("Domain shutdown called for vm: %s", name)
while True:
try:
Connection.get().lookupByName(name)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment