Commit d0f48229 authored by Alexander Gall's avatar Alexander Gall

First release

This version works but lacks documentation and needs a thorough
clean-up.
parent 8df987f4
This diff is collapsed.
This diff is collapsed.
-- *****************************************************************
-- CISCO-IETF-PW-TC-MIB.my
--
-- February 2003, Tim Swanson
--
-- Copyright (c) 2003, 2006 by cisco Systems, Inc.
-- All rights reserved.
--
-- Made Cisco Proprietary based on IETF draft:
-- draft-ietf-pwe3-pw-tc-mib-00.txt
-- *****************************************************************
CISCO-IETF-PW-TC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, Unsigned32, Integer32
FROM SNMPv2-SMI
TEXTUAL-CONVENTION
FROM SNMPv2-TC
ciscoExperiment
FROM CISCO-SMI
;
cpwTCMIB MODULE-IDENTITY
LAST-UPDATED "200607211200Z" -- 21 July 2006 10:30:00 GMT
ORGANIZATION
"Cisco Systems, Inc."
CONTACT-INFO
"
Thomas D. Nadeau
Postal: Cisco Systems, Inc.
250 Apollo Drive
Chelmsford, MA 01824
Tel: +1-978-497-3051
Email: tnadeau@cisco.com
MPLS MIB Development Team
Postal: Cisco Systems, Inc.
250 Apollo Drive
Chelmsford, MA 01924
Tel: +1-978-497-3989
Email: ch-mpls-mib-dev@cisco.com
"
DESCRIPTION
"This MIB Module provides Textual Conventions
and OBJECT-IDENTITY Objects to be used PW services."
-- Revision history.
REVISION "200607211200Z" -- 21 July 2006 10:30:00 GMT
DESCRIPTION
"Added following enumerations to cpwVcType TC:
e1Satop(12), t1Satop(13), e3Satop(14), t3Satop(15),
basicCesPsn(16), basicTdmIp(17), tdmCasCesPsn(18),
tdmCasTdmIp(19). The above enumerations are based
on IANAPwTypeTC TC in draft-ietf-pwe3-pw-mib-08.txt"
REVISION "200302261200Z" -- 26 Feb 2003 12:00:00 GMT
DESCRIPTION
"Made Cisco proprietary based on the PW-TC-MIB.my file
extracted from draft-ietf-pwe3-pw-tc-mib-00.txt
"
REVISION "200205281200Z" -- 28 May 2002 12:00:00 GMT
DESCRIPTION "Adding PwVcType, and enhance some descriptions."
REVISION "200201301200Z" -- 30 January 2002 12:00:00 GMT
DESCRIPTION "Adding PwVcVlanCfg, PwAddressType and
PwOperStatus."
REVISION "200112201200Z" -- 20 Dec 2001 12:00:00 GMT
DESCRIPTION "Remove PwVcInstance"
REVISION "200107121200Z" -- 12 July 2001 12:00:00 GMT
DESCRIPTION "Initial version."
::= { cpwMIB 1 } -- cpwMIB To Be Assigned by IANA
cpwMIB OBJECT IDENTIFIER
::= { ciscoExperiment 20000 } -- To be assigned by CANA
-- Textual Conventions defined below are organized alphabetically
CpwGroupID ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An administrative identification mechanism for grouping a
set of service-specific pseudo-wire services. May only
have local significance."
SYNTAX Unsigned32
CpwVcIDType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Virtual Circuit Identifier. Used to identify the VC
(together with some other fields) in the signaling
session. Zero if the VC is set-up manually."
SYNTAX Unsigned32
CpwVcIndexType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Virtual Circuit Index. Locally unique index for indexing
several MIB tables associated with a particular VC."
SYNTAX Unsigned32
CpwVcVlanCfg ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"VLAN configuration for Ethernet PW.
Values between 0 to 4095 indicate the actual VLAN field
value.
A value of 4096 indicates that the object refer to
untagged frames, i.e. frames without 802.1Q field.
A value of 4097 indicates that the object is not
relevant."
SYNTAX Integer32 (0..4097)
CpwOperStatus ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicate the operational status of the PW VC.
- up: Ready to pass packets.
- down: If PW signaling has not yet finished, or
indications available at the service
level indicate that the VC is not
passing packets.
- testing: If AdminStatus at the VC level is set to
test.
- dormant: The VC is not available because of the
required resources are occupied VC with
higher priority VCs .
- notPresent: Some component is missing to accomplish
the set up of the VC.
- lowerLayerDown: The underlying PSN or outer tunnel is not
in OperStatus 'up'.
"
SYNTAX INTEGER {
up(1),
down(2),
testing(3),
unknown(4),
dormant(5),
notPresent(6),
lowerLayerDown(7)
}
CpwVcType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Indicate the VC type (i.e. the carried service).
Note: the exact set of VC types is yet to be worked
out by the WG.
"
SYNTAX INTEGER {
other(0),
frameRelay(1),
atmAal5Vcc(2),
atmTransparent(3),
ethernetVLAN(4),
ethernet(5),
hdlc(6),
ppp(7),
cep(8),
atmVccCell(9),
atmVpcCell(10),
ethernetVPLS (11),
e1Satop(12),
t1Satop(13),
e3Satop(14),
t3Satop(15),
basicCesPsn(16),
basicTdmIp(17),
tdmCasCesPsn(18),
tdmCasTdmIp(19)
}
END
-- *****************************************************************
-- CISCO-SMI.my: Cisco Enterprise Structure of Management Information
--
-- April 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994-1997 by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
--
CISCO-SMI DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
OBJECT-IDENTITY,
enterprises
FROM SNMPv2-SMI;
cisco MODULE-IDENTITY
LAST-UPDATED "200001110000Z"
ORGANIZATION "Cisco Systems, Inc."
CONTACT-INFO
" Cisco Systems
Customer Service
Postal: 170 West Tasman Drive
San Jose, CA 95134
USA
Tel: +1 800 553-NETS
E-mail: cs-snmp@cisco.com"
DESCRIPTION
"The Structure of Management Information for the
Cisco enterprise."
REVISION "200001110000Z"
DESCRIPTION
"Added ciscoPolicy, ciscoPolicyAuto, ciscoPIB, and
ciscoPibToMib."
REVISION "9704090000Z"
DESCRIPTION
"Added ciscoPartnerProducts to generate sysObjectID
for partner platforms"
REVISION "9505160000Z"
DESCRIPTION
"New oid assignments for Cisco REPEATER MIB and others."
REVISION "9404262000Z"
DESCRIPTION
"Initial version of this MIB module."
::= { enterprises 9 } -- assigned by IANA
ciscoProducts OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoProducts is the root OBJECT IDENTIFIER from
which sysObjectID values are assigned. Actual
values are defined in CISCO-PRODUCTS-MIB."
::= { cisco 1 }
local OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Subtree beneath which pre-10.2 MIBS were built."
::= { cisco 2 }
temporary OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Subtree beneath which pre-10.2 experiments were
placed."
::= { cisco 3 }
pakmon OBJECT-IDENTITY
STATUS current
DESCRIPTION
"reserved for pakmon"
::= { cisco 4 }
workgroup OBJECT-IDENTITY
STATUS current
DESCRIPTION
"subtree reserved for use by the Workgroup Business Unit"
::= { cisco 5 }
otherEnterprises OBJECT-IDENTITY
STATUS current
DESCRIPTION
"otherEnterprises provides a root object identifier
from which mibs produced by other companies may be
placed. mibs produced by other enterprises are
typicially implemented with the object identifiers
as defined in the mib, but if the mib is deemed to
be uncontrolled, we may reroot the mib at this
subtree in order to have a controlled version."
::= { cisco 6 }
ciscoAgentCapability OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoAgentCapability provides a root object identifier
from which AGENT-CAPABILITIES values may be assigned."
::= { cisco 7 }
ciscoConfig OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoConfig is the main subtree for configuration mibs."
::= { cisco 8 }
ciscoMgmt OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoMgmt is the main subtree for new mib development."
::= { cisco 9 }
ciscoExperiment OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoExperiment provides a root object identifier
from which experimental mibs may be temporarily
based. mibs are typicially based here if they
fall in one of two categories
1) are IETF work-in-process mibs which have not
been assigned a permanent object identifier by
the IANA.
2) are cisco work-in-process which has not been
assigned a permanent object identifier by the
cisco assigned number authority, typicially because
the mib is not ready for deployment.
NOTE WELL: support for mibs in the ciscoExperiment
subtree will be deleted when a permanent object
identifier assignment is made."
::= { cisco 10 }
ciscoAdmin OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoAdmin is reserved for administratively assigned
OBJECT IDENTIFIERS, i.e. those not associated with MIB
objects"
::= { cisco 11 }
ciscoModules OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoModules provides a root object identifier
from which MODULE-IDENTITY values may be assigned."
::= { cisco 12 }
lightstream OBJECT-IDENTITY
STATUS current
DESCRIPTION
"subtree reserved for use by Lightstream"
::= { cisco 13 }
ciscoworks OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoworks provides a root object identifier beneath
which mibs applicable to the CiscoWorks family of network
management products are defined."
::= { cisco 14 }
newport OBJECT-IDENTITY
STATUS current
DESCRIPTION
"subtree reserved for use by the former Newport Systems
Solutions, now a portion of the Access Business Unit."
::= { cisco 15 }
ciscoPartnerProducts OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoPartnerProducts is the root OBJECT IDENTIFIER from
which partner sysObjectID values may be assigned. Such
sysObjectID values are composed of the ciscoPartnerProducts
prefix, followed by a single identifier that is unique for
each partner, followed by the value of sysObjectID of the
Cisco product from which partner product is derived. Note
that the chassisPartner MIB object defines the value of the
identifier assigned to each partner."
::= { cisco 16 }
ciscoPolicy OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoPolicy is the root of the Cisco-assigned OID
subtree for use with Policy Management."
::= { cisco 17 }
-- Note that 1.3.6.1.4.1.9.17.1 is currently unassigned
ciscoPIB OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoPIB is the root of the Cisco-assigned OID
subtree for assignment to PIB (Policy Information
Base) modules."
::= { ciscoPolicy 2 }
ciscoPolicyAuto OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoPolicyAuto is the root of the Cisco-assigned
OID subtree for OIDs which are automatically assigned
for use in Policy Management."
::= { cisco 18 }
-- Note that 1.3.6.1.4.1.9.18.1 is currently unassigned
ciscoPibToMib OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoPibToMib is the root of the Cisco-assigned
OID subtree for MIBs which are algorithmically
generated/translated from Cisco PIBs with OIDs
assigned under the ciscoPIB subtree.
These generated MIBs allow management
entities (other the current Policy Server) to
read the downloaded policy. By convention, for PIB
'ciscoPIB.x', the generated MIB shall have the
name 'ciscoPibToMib.x'."
::= { ciscoPolicyAuto 2 }
-- ciscoAdmin assignments follow
ciscoProxy OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoProxy OBJECT IDENTIFIERS are used to uniquely name
party mib records created to proxy for SNMPv1."
::= { ciscoAdmin 1 }
ciscoPartyProxy OBJECT IDENTIFIER ::= { ciscoProxy 1 }
ciscoContextProxy OBJECT IDENTIFIER ::= { ciscoProxy 2 }
--
-- Administrative assignments for repeaters
--
ciscoRptrGroupObjectID OBJECT-IDENTITY
STATUS current
DESCRIPTION
"ciscoRptrGroupObjectID OBJECT IDENTIFIERS are used to
uniquely identify groups of repeater ports for use by the
SNMP-REPEATER-MIB (RFC 1516) rptrGroupObjectID object."
::= { ciscoAdmin 2 }
ciscoUnknownRptrGroup OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The identity of an unknown repeater port group."
::= { ciscoRptrGroupObjectID 1 }
cisco2505RptrGroup OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The authoritative identity of the Cisco 2505 repeater
port group."
::= { ciscoRptrGroupObjectID 2 }
cisco2507RptrGroup OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The authoritative identity of the Cisco 2507 repeater
port group."
::= { ciscoRptrGroupObjectID 3 }
cisco2516RptrGroup OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The authoritative identity of the Cisco 2516 repeater
port group."
::= { ciscoRptrGroupObjectID 4 }
ciscoWsx5020RptrGroup OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The authoritative identity of the wsx5020 repeater
port group."
::= { ciscoRptrGroupObjectID 5 }
--
-- Administrative assignments for chip sets
--
ciscoChipSets OBJECT-IDENTITY
STATUS current
DESCRIPTION
"Numerous media-specific MIBS have an object, defined as
an OBJECT IDENTIFIER, which is the identity of the chipset
realizing the interface. Cisco-specific chipsets have their
OBJECT IDENTIFIERS assigned under this subtree."
::= { ciscoAdmin 3 }
ciscoChipSetSaint1 OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The identity of the Rev 1 SAINT ethernet chipset
manufactured for cisco by LSI Logic."
::= { ciscoChipSets 1 }
ciscoChipSetSaint2 OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The identity of the Rev 2 SAINT ethernet chipset
manufactured for cisco by LSI Logic."
::= { ciscoChipSets 2 }
ciscoChipSetSaint3 OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The identity of the Rev 3 SAINT ethernet chipset
manufactured for cisco by Plessey."
::= { ciscoChipSets 3 }
ciscoChipSetSaint4 OBJECT-IDENTITY
STATUS current
DESCRIPTION
"The identity of the Rev 4 SAINT ethernet chipset
manufactured for cisco by Mitsubishi."
::= { ciscoChipSets 4 }
END
HC-PerfHist-TC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
Counter64,
Unsigned32,
Integer32,
mib-2 FROM SNMPv2-SMI
TEXTUAL-CONVENTION FROM SNMPv2-TC;
hcPerfHistTCMIB MODULE-IDENTITY
LAST-UPDATED "200402030000Z" -- February 3, 2004
ORGANIZATION "ADSLMIB Working Group"
CONTACT-INFO "WG-email: adslmib@ietf.org
Info: https://www1.ietf.org/mailman/listinfo/adslmib
Chair: Mike Sneed
Sand Channel Systems
Postal: P.O. Box 37324
Raleigh NC 27627-7324
USA
Email: sneedmike@hotmail.com
Phone: +1 206 600 7022
Co-editor: Bob Ray
PESA Switching Systems, Inc.
Postal: 330-A Wynn Drive
Huntsville, AL 35805
USA
Email: rray@pesa.com
Phone: +1 256 726 9200 ext. 142
Co-editor: Rajesh Abbi
Alcatel USA
Postal: 2301 Sugar Bush Road
Raleigh, NC 27612-3339
USA
Email: Rajesh.Abbi@alcatel.com
Phone: +1 919 850 6194
"
DESCRIPTION
"This MIB Module provides Textual Conventions to be
used by systems supporting 15 minute based performance
history counts that require high-capacity counts.
Copyright (C) The Internet Society (2004). This version
of this MIB module is part of RFC 3705: see the RFC
itself for full legal notices."
REVISION "200402030000Z" -- February 3, 2004
DESCRIPTION "Initial version, published as RFC 3705."
::= { mib-2 107 }
HCPerfValidIntervals ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The number of near end intervals for which data was
collected. The value of an object with an
HCPerfValidIntervals syntax will be 96 unless the
measurement was (re-)started within the last 1440 minutes,
in which case the value will be the number of complete 15
minute intervals for which the agent has at least some data.
In certain cases (e.g., in the case where the agent is a
proxy) it is possible that some intervals are unavailable.
In this case, this interval is the maximum interval number
for which data is available."
SYNTAX Integer32 (0..96)
HCPerfInvalidIntervals ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The number of near end intervals for which no data is
available. The value of an object with an
HCPerfInvalidIntervals syntax will typically be zero except
in cases where the data for some intervals are not available
(e.g., in proxy situations)."
SYNTAX Integer32 (0..96)
HCPerfTimeElapsed ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The number of seconds that have elapsed since the beginning
of the current measurement period. If, for some reason,
such as an adjustment in the system's time-of-day clock or
the addition of a leap second, the duration of the current
interval exceeds the maximum value, the agent will return
the maximum value.
For 15 minute intervals, the range is limited to (0..899).
For 24 hour intervals, the range is limited to (0..86399)."
SYNTAX Integer32 (0..86399)
HCPerfIntervalThreshold ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This convention defines a range of values that may be set
in a fault threshold alarm control. As the number of
seconds in a 15-minute interval numbers at most 900,
objects of this type may have a range of 0...900, where the
value of 0 disables the alarm."
SYNTAX Unsigned32 (0..900)
HCPerfCurrentCount ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A gauge associated with a performance measurement in a
current 15 minute measurement interval. The value of an
object with an HCPerfCurrentCount syntax starts from zero
and is increased when associated events occur, until the
end of the 15 minute interval. At that time the value of
the gauge is stored in the first 15 minute history
interval, and the gauge is restarted at zero. In the case
where the agent has no valid data available for the
current interval, the corresponding object instance is not
available and upon a retrieval request a corresponding
error message shall be returned to indicate that this
instance does not exist.
This count represents a non-negative integer, which
may increase or decrease, but shall never exceed 2^64-1
(18446744073709551615 decimal), nor fall below 0. The
value of an object with HCPerfCurrentCount syntax
assumes its maximum value whenever the underlying count
exceeds 2^64-1. If the underlying count subsequently
decreases below 2^64-1 (due, e.g., to a retroactive
adjustment as a result of entering or exiting unavailable
time), then the object's value also decreases.
Note that this TC is not strictly supported in SMIv2,
because the 'always increasing' and 'counter wrap'
semantics associated with the Counter64 base type are not
preserved. It is possible that management applications
which rely solely upon the (Counter64) ASN.1 tag to
determine object semantics will mistakenly operate upon
objects of this type as they would for Counter64 objects.
This textual convention represents a limited and short-
term solution, and may be deprecated as a long term
solution is defined and deployed to replace it."
SYNTAX Counter64
HCPerfIntervalCount ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A gauge associated with a performance measurement in
a previous 15 minute measurement interval. In the case
where the agent has no valid data available for a
particular interval, the corresponding object instance is
not available and upon a retrieval request a corresponding
error message shall be returned to indicate that this
instance does not exist.
Let X be an object with HCPerfIntervalCount syntax.
Let Y be an object with HCPerfCurrentCount syntax.
Let Z be an object with HCPerfTotalCount syntax.
Then, in a system supporting a history of n intervals with
X(1) and X(n) the most and least recent intervals
respectively, the following applies at the end of a 15
minute interval:
- discard the value of X(n)
- the value of X(i) becomes that of X(i-1)
for n >= i > 1
- the value of X(1) becomes that of Y.
- the value of Z, if supported, is adjusted.
This count represents a non-negative integer, which
may increase or decrease, but shall never exceed 2^64-1
(18446744073709551615 decimal), nor fall below 0. The
value of an object with HCPerfIntervalCount syntax
assumes its maximum value whenever the underlying count
exceeds 2^64-1. If the underlying count subsequently
decreases below 2^64-1 (due, e.g., to a retroactive
adjustment as a result of entering or exiting unavailable
time), then the value of the object also decreases.
Note that this TC is not strictly supported in SMIv2,
because the 'always increasing' and 'counter wrap'
semantics associated with the Counter64 base type are not
preserved. It is possible that management applications
which rely solely upon the (Counter64) ASN.1 tag to
determine object semantics will mistakenly operate upon
objects of this type as they would for Counter64 objects.
This textual convention represents a limited and short-
term solution, and may be deprecated as a long term
solution is defined and deployed to replace it."
SYNTAX Counter64
HCPerfTotalCount ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A gauge representing the aggregate of previous valid 15
minute measurement intervals. Intervals for which no
valid data was available are not counted.
This count represents a non-negative integer, which
may increase or decrease, but shall never exceed 2^64-1
(18446744073709551615 decimal), nor fall below 0. The
value of an object with HCPerfTotalCount syntax
assumes its maximum value whenever the underlying count
exceeds 2^64-1. If the underlying count subsequently
decreases below 2^64-1 (due, e.g., to a retroactive
adjustment as a result of entering or exiting unavailable
time), then the object's value also decreases.
Note that this TC is not strictly supported in SMIv2,
because the 'always increasing' and 'counter wrap'
semantics associated with the Counter64 base type are not
preserved. It is possible that management applications
which rely solely upon the (Counter64) ASN.1 tag to
determine object semantics will mistakenly operate upon
objects of this type as they would for Counter64 objects.
This textual convention represents a limited and short-
term solution, and may be deprecated as a long term
solution is defined and deployed to replace it."
SYNTAX Counter64
END
IANA-PWE3-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, mib-2
FROM SNMPv2-SMI -- [RFC2578]
TEXTUAL-CONVENTION
FROM SNMPv2-TC; -- [RFC2579]
ianaPwe3MIB MODULE-IDENTITY
LAST-UPDATED "200906110000Z" -- 11 June 2009 00:00:00 GMT
ORGANIZATION "IANA"
CONTACT-INFO
"Internet Assigned Numbers Authority
Internet Corporation for Assigned Names and Numbers
4676 Admiralty Way, Suite 330
Marina del Rey, CA 90292-6601
Phone: +1 310 823 9358
EMail: iana@iana.org"
DESCRIPTION
"This MIB module defines the IANAPwTypeTC and
IANAPwPsnTypeTC textual conventions for use in PWE3
MIB modules.
Any additions or changes to the contents of this MIB
module require either publication of an RFC, Designated
Expert Review as defined in RFC 5226, Guidelines for
Writing an IANA Considerations Section in RFCs, and should
be based on the procedures defined in [RFC4446]. The
Designated Expert will be selected by the IESG Area
Director(s) of the internet Area.
Copyright (c) 2009 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the
following conditions are met:
- Redistributions of source code must retain the above