1# Copyright (c) 2017, The MITRE Corporation. All rights reserved.
2# See LICENSE.txt for complete terms.
3
4from mixbox import fields
5
6import cybox.bindings.network_route_entry_object as network_route_entry_binding
7from cybox.common import ObjectProperties, String, UnsignedLong, Duration
8from cybox.objects.address_object import Address
9
10
11class NetworkRouteEntry(ObjectProperties):
12    _binding = network_route_entry_binding
13    _binding_class = network_route_entry_binding.NetworkRouteEntryObjectType
14    _namespace = "http://cybox.mitre.org/objects#NetworkRouteEntryObject-2"
15    _XSI_NS = "NetworkRouteEntryObj"
16    _XSI_TYPE = "NetworkRouteEntryObjectType"
17
18    is_ipv6 = fields.TypedField("is_ipv6")
19    is_autoconfigure_address = fields.TypedField("is_autoconfigure_address")
20    is_immortal = fields.TypedField("is_immortal")
21    is_loopback = fields.TypedField("is_loopback")
22    is_publish = fields.TypedField("is_publish")
23
24    destination_address = fields.TypedField("Destination_Address", Address)
25    origin = fields.TypedField("Origin", Address)
26    netmask = fields.TypedField("Netmask", Address)
27    gateway_address = fields.TypedField("Gateway_Address", Address)
28    metric = fields.TypedField("Metric", UnsignedLong)
29
30    type_ = fields.TypedField("Type", String)
31    protocol = fields.TypedField("Protocol", String)
32    interface = fields.TypedField("Interface", String)
33    preferred_lifetime = fields.TypedField("Preferred_Lifetime", Duration)
34    valid_lifetime = fields.TypedField("Valid_Lifetime", Duration)
35    route_age = fields.TypedField("Route_Age", Duration)
36