Class: Construqt::Flavour::Mikrotik::Gre

Inherits:
OpenStruct
  • Object
show all
Defined in:
lib/construqt/flavour/mikrotik/flavour_mikrotik.rb

Instance Method Summary collapse

Constructor Details

#initialize(cfg) ⇒ Gre

Returns a new instance of Gre.



282
283
284
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 282

def initialize(cfg)
  super(cfg)
end

Instance Method Details

#build_config(host, iface) ⇒ Object



309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 309

def build_config(host, iface)
  iface = iface.delegate
  #puts "iface.name=>#{iface.name}"
  #binding.pry
  #iname = Util.clean_if("gre6", "#{iface.name}")
  if iface.local.first_ipv6 && iface.remote.first_ipv6
    set_interface_gre6(host, "name"=> iface.name,
                       "local-address"=>iface.local.first_ipv6,
                       "remote-address"=>iface.remote.first_ipv6)
  else
    set_interface_gre(host, "name"=> iface.name,
                      "local-address"=>iface.local.first_ipv4,
                      "remote-address"=>iface.remote.first_ipv4)
  end
  Interface.build_config(host, iface)

  #Mikrotik.set_ipv6_address(host, "address"=>iface.address.first_ipv6.to_string, "interface" => iname)
end

#set_interface_gre(host, cfg) ⇒ Object



286
287
288
289
290
291
292
293
294
295
296
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 286

def set_interface_gre(host, cfg)
  default = {
    "name"=>Schema.identifier.required.key,
    "local-address"=>Schema.address.required,
    "remote-address"=>Schema.address.required,
    "dscp"=>Schema.identifier.default("inherit"),
    "mtu"=>Schema.int.default(1476)
#            "l2mtu"=>Scheme.int.default(65535)
  }
  host.result.render_mikrotik(default, cfg, "interface", "gre")
end

#set_interface_gre6(host, cfg) ⇒ Object



298
299
300
301
302
303
304
305
306
307
# File 'lib/construqt/flavour/mikrotik/flavour_mikrotik.rb', line 298

def set_interface_gre6(host, cfg)
  default = {
    "name"=>Schema.identifier.required.key,
    "local-address"=>Schema.address.required,
    "remote-address"=>Schema.address.required,
    "mtu"=>Schema.int.default(1456)
#            "l2mtu"=>Schema.int.default(65535)
  }
  host.result.render_mikrotik(default, cfg, "interface", "gre6")
end