Re: [CCAMP] Genart last call review of draft-ietf-ccamp-alarm-module-07

stefan vallin <> Tue, 19 March 2019 15:11 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E2BD91313BE for <>; Tue, 19 Mar 2019 08:11:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yulQzOa6NN6y for <>; Tue, 19 Mar 2019 08:11:44 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4864:20::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 06DD11313B4 for <>; Tue, 19 Mar 2019 08:11:43 -0700 (PDT)
Received: by with SMTP id q66so4052878ljq.7 for <>; Tue, 19 Mar 2019 08:11:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=6pYfus6JLTCs9wADb3V67wrV5K+HtJZbjZWtZo0UGls=; b=mogO9FXUFR4XfF2CrW4Hq9mNig7E/HbQlnrhelrd1nqHdRcwYMemmF3t4Jk+1+BwSH CCfhpBifn192e/KKTAjEq7zqYFXNnjPo3kTLV44CE+F9y51JPzTL0bFj91c4sAzIOiTZ hsIkm2ODejSYiYEKylxquQAeLtWtytAJ1laC7XvSjQGIxCmTNh3to2pvJS5F6/IUQ+5K asObAlmpbMTqtg3oro68IL2FoeKV6A4vP8M4bSwIN+grRLO8tyonpbZP6uymNvIfPm0N qFi7WHpOqEDGIDZ9poRFm9MO+m++Jq0W+98P6KAgtcnNwJMsFiaiGQ1fePkfdil7Lm/v gX9g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=6pYfus6JLTCs9wADb3V67wrV5K+HtJZbjZWtZo0UGls=; b=rpnaL+DVte/BQ294hXSgcxUt4Td1rX+kL0N9rhOIa1LeGW5uL3QHmhoXkUPwpo38UX eZ+OM8zKxkNo3ZbNNmyL+3vdbxQhIDUt1jcpkf3j5RV2T1yfPvJQn395N+sFw/igka3b BTOuAlO0BCpW+r7HSG0AJ3og96C7BRUSJG3uIHfGn/bPYrDqGuHHFAb3UGYEIrrJRl0k kz6xOZaT3QHXaMG9E/1+dgwVzoXzF9VGTRvrHtYQcqMK6EwuRuVD98Tv/e6m9G7BkIp3 86jCxMAd9ZQJ4KQmi3OzU8DOfBhQlRvRMi8RYCOBKpVebO89oqQD7RHGnxXkYr28JtUe Sxnw==
X-Gm-Message-State: APjAAAWYsumztpK7+tH0RasGjh0qd8Kz+UI0P8XNx6TbWfR180kkVbbl GnVmBN+ghJ34cy/4ft9rdLc7HKYEQdawWg==
X-Google-Smtp-Source: APXvYqxNXUGb1aE/+ns7OsM53KaJt8QLn3ShzJKU/vQz0P/kJ/AUoFSPDElaHvgS+fNvWJZvkuOI+g==
X-Received: by 2002:a2e:8658:: with SMTP id i24mr10267792ljj.194.1553008301185; Tue, 19 Mar 2019 08:11:41 -0700 (PDT)
Received: from [] ([]) by with ESMTPSA id r130sm1919094lfr.42.2019. (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Mar 2019 08:11:40 -0700 (PDT)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\))
From: stefan vallin <>
In-Reply-To: <>
Date: Tue, 19 Mar 2019 16:11:39 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <>
To: Dan Romascanu <>
X-Mailer: Apple Mail (2.3445.100.39)
Archived-At: <>
Subject: Re: [CCAMP] Genart last call review of draft-ietf-ccamp-alarm-module-07
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion list for the CCAMP working group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 19 Mar 2019 15:11:46 -0000

Hi Dan!
Thanks for your review, an honour to have RFC 3877 in the loop :)
See inline
br Stefan

> Major issues:
> 1. The definition of Alarm is key for the whole model. It reads like this:
> Alarm (the general concept): An alarm signifies an undesirable state in a
> resource that requires corrective action.
> However, RFC 3877 already defined a number of concepts including:
>  Error
>      A deviation of a system from normal operation.
>   Fault
>      Lasting error or warning condition.
>   ....
>   Alarm
>      Persistent indication of a fault.
> I believe that there is a need to show why the model defined by RFC 3877 needs
> to be changed, and why the difference that RFC 3877 was making between a Fault
> and an Alarm is no longer needed.

Good comment, you are right, and we need to keep the distinction between fault and alarm.
That distinction is used in X.733, 3GPP IRP and others. The general pattern is that “fault”
refers to what is really broken, and the alarm the manifestation of that underlying cause. 
There is not a simple 1-1 relationship between a fault and an alarm
* 1 fault may have many alarms due to limited root cause capabilities of the system
* There might be no underlying fault to an alarm, consider a non-optimal QoS configuration 
  which gives bad quality in VOIP calls. Certainly a MOS alarm from the VOIP probe, but there
  is no “fault” as such (if you do not consider a non-optimal config as a fault)

So X.733
X.733 fault: The physical or algorithmic cause of a malfunction
3GPP fault: a deviation of a system from normal operation, which may result in the loss of operational capabilities of the element or the loss of redundancy in case of a redundant configuration

I suggest we add the following to terminology:
Fault: the underlying cause of an undesired behaviour

If we then turn to the term “alarm". I have added two aspects to the definition of an alarm:

An alarm signifies an *undesirable state* in a resource that *requires corrective action*.

Mostly based on the alarm standardization work in the process industry (see draft references).

1) Rather than “deviation from normal”, we say “undesirable”, subtle difference.
  In IT environments it is easier to define what is normal, a normal load to a web server.
  And anything deviation from that normal load could be an alarm.
  In networking, things are more dynamic, and deviation from normal might be the desired state.
  So the definition stresses the fact that it is an undesired state, not just deviation from normal.

2) Adding the requirement that an alarm per definition should require an action. This is a sound
  requirement that puts requirements on what qualifies as an alarm and limits the amounts of alarms.
  (See for example the EEMUA, and ISA182 references in the draft). The 3GPP Alarm standard
  also added this to their definition at the later revisions to address the alarm overload problem.

> Also, RFC 3877 defined in Section 3 a
> Framework and an Architecture that was consistent with X.733. This document has
> no such section, and while acknowledging the need for a mapping to X.733 it
> states as a goal:
> Mapping to X.733, which is a requirement for some alarm systems. Still, keep
> some of the X.733 concepts out of the core model in order to make the model
> small and easy to understand
> More details about what is left out and why these are not needed would help.
The alarm YANG model  does not *require* the X.733 parameter
definitions of for example probable-cause enum values. Today, most networking devices 
and management systems do not rely on those enumerations.

Those are defined in the X733 augmentation module in order to keep the core model as
small and useful as possible. X733 requirements come more often from telecom environments.

> Minor issues:
> 1. Section 2 makes a statement that includes
> ... While IETF has not really addressed alarm management
> This is is actually not accurate. RFC 3877 addressed Alarm Management. Maybe
> there is a need to revise that approach, but this should be done explicitly,
> not by stating that it did not exist.
Correct, bad wording.
Address alarm usability requirements, see Appendix G.  While IETF
      has not really addressed alarm management, telecom standards has
      addressed it purely from a protocol perspective.  The process
      industry has published several relevant standards addressing
      requirements for a useful alarm interface; [EEMUA], [ISA182].
      This alarm module defines usability requirements as well as a YANG
      data model.
Address alarm usability requirements, see Appendix G.  While IETF
      and telecom standards have addressed alarms mostly from a 
      protocol perspective, the process industry has published 
      several relevant standards addressing requirements for a useful 
      alarm interface; [EEMUA], [ISA182].
      This alarm module defines usability requirements as well as a YANG
      data model.

> 2. Section 3.5:
> Closing an alarm implies that the operator considers the corrective action
> performed.
> Is this always true? The undesirable state may have been cancelled by some
> other event than corrective action, for example the resource is no longer used,
> or the time elapsed mat have made the undesirable state irrelevant.

I think it is important to keep the two perspectives in mind. An operator closing an
alarm is only a flag from the operations team that the alarm does not need an action.
It might be cleared or not cleared by the system.

So in your first example, the alarm is probably cleared by the instrumentation, 
correlating “the other event”.

If the resource is no longer used a shelf should be created.

If time has passed, depends, ….

> 3. In section 3.5.1:
> Alarms are not cleared by operators, only the underlying instrumentation can
> clear an alarm.  Operators can close alarms.
> So, the document makes a distinction between clearing an alarm and closing an
> alarm. It may be good to define two two concepts to make the distinction clear.

Good point!

Suggested terminology additions:
* Cleared alarm: a cleared alarm is an alarm where the system/server considers the
undesired state to be cleared. Operators can not clear alarms, clearance is managed
by the system. A linkUp notification can be considered a clear condition for a linkDown state.

* Closed alarm: operators can close alarms irrespective of the alarm being cleared or not.
A closed alarm indicates that the alarm does not need attention, either since the corrective
action has been taken or that it can be ignored for other reasons.

> 4. Appendix F.1:
> The alarm MIB is state oriented rather than notification oriented, an alarm
> is a "lasting condition", not a discrete notification reporting about a
> condition state change.
Good catch, will rephrase, the alarm MIB and the alarm YANG has a stateful view
of alarms, not notification-focused.

Suggested change:
RFC 3877 defines alarm referring back to "a deviation from normal operation". This is
problematic, since this might not require an  operator action. The alarm MIB is state 
oriented rather than notification oriented,  an alarm is a "lasting  condition", not a 
discrete notification reporting about a condition state change.
RFC 3877 defines alarm referring back to "a deviation from normal operation". The Alarm YANG
model adds the requirement that it should require an corrective action and should be undesired, 
not only a deviation from normal. The alarm MIB is state oriented in the same way as the Alarm YANG,
it focuses on the  "lasting  condition", not the individual notifications.

> I am not sure that I understand this comment. Alarm states are defined also in
> this document, and Alarms as defined here are also different than ' a discrete
> notification reporting about a condition state change'. So, what does this
> comment really try to say?
> Nits/editorial comments: