Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

# Copyright 2012 Red Hat, Inc. 

# 

#    Licensed under the Apache License, Version 2.0 (the "License"); you may 

#    not use this file except in compliance with the License. You may obtain 

#    a copy of the License at 

# 

#         http://www.apache.org/licenses/LICENSE-2.0 

# 

#    Unless required by applicable law or agreed to in writing, software 

#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 

#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 

#    License for the specific language governing permissions and limitations 

#    under the License. 

 

from oslo_config import cfg 

 

from neutron.agent.common import config 

from neutron.plugins.common import constants as p_const 

from neutron.plugins.ml2.drivers.openvswitch.agent.common \ 

    import constants 

 

 

DEFAULT_BRIDGE_MAPPINGS = [] 

DEFAULT_VLAN_RANGES = [] 

DEFAULT_TUNNEL_RANGES = [] 

DEFAULT_TUNNEL_TYPES = [] 

 

ovs_opts = [ 

    cfg.StrOpt('integration_bridge', default='br-int', 

               help=_("Integration bridge to use.")), 

    cfg.StrOpt('tunnel_bridge', default='br-tun', 

               help=_("Tunnel bridge to use.")), 

    cfg.StrOpt('int_peer_patch_port', default='patch-tun', 

               help=_("Peer patch port in integration bridge for tunnel " 

                      "bridge.")), 

    cfg.StrOpt('tun_peer_patch_port', default='patch-int', 

               help=_("Peer patch port in tunnel bridge for integration " 

                      "bridge.")), 

    cfg.IPOpt('local_ip', version=4, 

              help=_("Local IP address of tunnel endpoint.")), 

    cfg.ListOpt('bridge_mappings', 

                default=DEFAULT_BRIDGE_MAPPINGS, 

                help=_("List of <physical_network>:<bridge>. " 

                       "Deprecated for ofagent.")), 

    cfg.BoolOpt('use_veth_interconnection', default=False, 

                help=_("Use veths instead of patch ports to interconnect the " 

                       "integration bridge to physical bridges.")), 

    cfg.StrOpt('of_interface', default='ovs-ofctl', choices=['ovs-ofctl'], 

               help=_("OpenFlow interface to use.")), 

    cfg.StrOpt('datapath_type', default=constants.OVS_DATAPATH_SYSTEM, 

               choices=[constants.OVS_DATAPATH_SYSTEM, 

                        constants.OVS_DATAPATH_NETDEV], 

               help=_("OVS datapath to use.")), 

] 

 

agent_opts = [ 

    cfg.IntOpt('polling_interval', default=2, 

               help=_("The number of seconds the agent will wait between " 

                      "polling for local device changes.")), 

    cfg.BoolOpt('minimize_polling', 

                default=True, 

                help=_("Minimize polling by monitoring ovsdb for interface " 

                       "changes.")), 

    cfg.IntOpt('ovsdb_monitor_respawn_interval', 

               default=constants.DEFAULT_OVSDBMON_RESPAWN, 

               help=_("The number of seconds to wait before respawning the " 

                      "ovsdb monitor after losing communication with it.")), 

    cfg.ListOpt('tunnel_types', default=DEFAULT_TUNNEL_TYPES, 

                help=_("Network types supported by the agent " 

                       "(gre and/or vxlan).")), 

    cfg.IntOpt('vxlan_udp_port', default=p_const.VXLAN_UDP_PORT, 

               help=_("The UDP port to use for VXLAN tunnels.")), 

    cfg.IntOpt('veth_mtu', 

               help=_("MTU size of veth interfaces")), 

    cfg.BoolOpt('l2_population', default=False, 

                help=_("Use ML2 l2population mechanism driver to learn " 

                       "remote MAC and IPs and improve tunnel scalability.")), 

    cfg.BoolOpt('arp_responder', default=False, 

                help=_("Enable local ARP responder if it is supported. " 

                       "Requires OVS 2.1 and ML2 l2population driver. " 

                       "Allows the switch (when supporting an overlay) " 

                       "to respond to an ARP request locally without " 

                       "performing a costly ARP broadcast into the overlay.")), 

    cfg.BoolOpt('prevent_arp_spoofing', default=True, 

                help=_("Enable suppression of ARP responses that don't match " 

                       "an IP address that belongs to the port from which " 

                       "they originate. Note: This prevents the VMs attached " 

                       "to this agent from spoofing, it doesn't protect them " 

                       "from other devices which have the capability to spoof " 

                       "(e.g. bare metal or VMs attached to agents without " 

                       "this flag set to True). Spoofing rules will not be " 

                       "added to any ports that have port security disabled. " 

                       "For LinuxBridge, this requires ebtables. For OVS, it " 

                       "requires a version that supports matching ARP " 

                       "headers.")), 

    cfg.BoolOpt('dont_fragment', default=True, 

                help=_("Set or un-set the don't fragment (DF) bit on " 

                       "outgoing IP packet carrying GRE/VXLAN tunnel.")), 

    cfg.BoolOpt('enable_distributed_routing', default=False, 

                help=_("Make the l2 agent run in DVR mode.")), 

    cfg.IntOpt('quitting_rpc_timeout', default=10, 

               help=_("Set new timeout in seconds for new rpc calls after " 

                      "agent receives SIGTERM. If value is set to 0, rpc " 

                      "timeout won't be changed")), 

    cfg.BoolOpt('drop_flows_on_start', default=False, 

                help=_("Reset flow table on start. Setting this to True will " 

                       "cause brief traffic interruption.")) 

] 

 

 

cfg.CONF.register_opts(ovs_opts, "OVS") 

cfg.CONF.register_opts(agent_opts, "AGENT") 

config.register_agent_state_opts_helper(cfg.CONF)