aboutsummaryrefslogtreecommitdiff
path: root/pyasn1_modules/rfc1155.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyasn1_modules/rfc1155.py')
-rw-r--r--pyasn1_modules/rfc1155.py46
1 files changed, 30 insertions, 16 deletions
diff --git a/pyasn1_modules/rfc1155.py b/pyasn1_modules/rfc1155.py
index ba0368f..f0e39ca 100644
--- a/pyasn1_modules/rfc1155.py
+++ b/pyasn1_modules/rfc1155.py
@@ -12,56 +12,69 @@
# Sample captures from:
# http://wiki.wireshark.org/SampleCaptures/
#
-from pyasn1.type import univ, namedtype, namedval, tag, constraint
+from pyasn1.type import univ, namedtype, tag, constraint
+
class ObjectName(univ.ObjectIdentifier): pass
+
class SimpleSyntax(univ.Choice):
componentType = namedtype.NamedTypes(
namedtype.NamedType('number', univ.Integer()),
namedtype.NamedType('string', univ.OctetString()),
namedtype.NamedType('object', univ.ObjectIdentifier()),
namedtype.NamedType('empty', univ.Null())
- )
+ )
+
class IpAddress(univ.OctetString):
tagSet = univ.OctetString.tagSet.tagImplicitly(
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 0)
- )
+ )
subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueSizeConstraint(
4, 4
- )
+ )
+
+
class NetworkAddress(univ.Choice):
componentType = namedtype.NamedTypes(
namedtype.NamedType('internet', IpAddress())
- )
+ )
+
class Counter(univ.Integer):
tagSet = univ.Integer.tagSet.tagImplicitly(
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 1)
- )
+ )
subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(
0, 4294967295
- )
+ )
+
+
class Gauge(univ.Integer):
tagSet = univ.Integer.tagSet.tagImplicitly(
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2)
- )
+ )
subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(
0, 4294967295
- )
+ )
+
+
class TimeTicks(univ.Integer):
tagSet = univ.Integer.tagSet.tagImplicitly(
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 3)
- )
+ )
subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(
0, 4294967295
- )
+ )
+
+
class Opaque(univ.OctetString):
tagSet = univ.OctetString.tagSet.tagImplicitly(
tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 4)
- )
-
+ )
+
+
class ApplicationSyntax(univ.Choice):
componentType = namedtype.NamedTypes(
namedtype.NamedType('address', NetworkAddress()),
@@ -69,10 +82,11 @@ class ApplicationSyntax(univ.Choice):
namedtype.NamedType('gauge', Gauge()),
namedtype.NamedType('ticks', TimeTicks()),
namedtype.NamedType('arbitrary', Opaque())
- )
-
+ )
+
+
class ObjectSyntax(univ.Choice):
componentType = namedtype.NamedTypes(
namedtype.NamedType('simple', SimpleSyntax()),
namedtype.NamedType('application-wide', ApplicationSyntax())
- )
+ )