INTERNET-DRAFT
Bidirectional Forwarding Detection                       A.  Palanivelan
Category: EXPERIMENTAL                                     Cisco Systems
Expires:  Nov 2010                                        April 21, 2010

    Bidirectional Forwarding Detection (BFD) with Graceful Restart
                    draft-palanivelan-bfd-v2-gr-04.txt

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on Nov 1, 2010.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.




A.Palanivelan                                                  [Page 1]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt      Apr 2010


Abstract

This document proposes an extension for Bidirectional Forwarding
Detection (BFD) to support Graceful restart, in complementing
Graceful restart support of the underlying protocol.This shall work
consistently irespective of the bfd mode or protocol or the type of
restart.This document describes the challenges to bfd in surviving a
graceful restart and a generic solution to succeed.The intention of
this document is to provide a solution that works fine for all types
of bfd implementations.

Table of Contents

1  INTRODUCTION   .............................................  3
2  OVERVIEW     ...............................................  3
3  MOTIVATIONS   ..............................................  3
   3.1 Planned and Unplanned Restarts with control protocols ..  4
   3.2  BFD Co-existing with BB configs .......................  4
4  Extensions to BFD ..........................................  5
   4.1  Version  (Vers)........................................  5
   4.2  Diagnostic  (Diag).....................................  6
   4.3  My Restart Interval....................................  6
   4.4  Your Restart Interval..................................  6
5  Theory of operation.........................................  7
6  Security Consderations......................................  9
7  IANA Considerations.........................................  8
8  References .................................................  9
   8.1  Normative References...................................  9
   8.2  Informative References.................................  9
9  Author's address............................................ 10













A.Palanivelan                                                  [Page 2]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt      Apr 2010


1. Introduction

The Bidirectional  Forwarding  Detection  protocol  [BFD]  provides  a
mechanism for liveness detection of arbitrary paths  between  systems.
It is intended to provide low-overhead,  short-duration  detection  of
failures in the path between adjacent  forwarding  engines,  including
the  interfaces,  data  link(s),  and  to  the  extent  possible   the
forwarding  engines   themselves.   It   operates   independently   of
media,data protocols,and routing protocols. An additional goal  is  to
provide a single mechanism that can be  used  for  liveness  detection
over any media, at any protocol layer, with a wide range of  detection
times and overhead, to avoid a proliferation of different methods.

The extensions introduced in this draft  for  bfd  shall  aid  in  bfd
complementing the GR capabilities of protocols such as ospf and  also
in providing a  consistent  behavior  for  planned/unplanned restarts
irrespective of the underlying protocols.The intention of this document
is to provide a solution that works fine for all types of bfd
implementations.

2. Overview

The Bidirectional Forwarding Detection [BFD] specification  defines  a
protocol with simple and specific semantics. Its sole  purpose  is  to
verify connectivity between a pair of systems, for a  particular  data
protocol across a path (which may be of  any  technology,  length,  or
OSI layer). The promptness of the detection of a path failure  can  be
controlled by trading off  protocol  overhead  and  system  load  with
detection times.

BFD is assumend to be working fine without a need for any GR support in
it.But, the deployments show that the different types of implementations
in the products and their inherent mechanisms lead to issues with bfd
especially in surviving GR.It is true that prioristising bfd would make
sure the other cpu intensive processes do not fail bfd, but this won't
be possible as there may be other higher priority processing that cant
be ignored.Example for this are the existing subscriber connections that
can't be given a lesser priority.

The extensions introduced in this draft  for  bfd  shall  aid  in  bfd
complementing the GR capabilities of protocols such as ospf  and  also
in providing a consistent behavior for planned/unplanned restarts  for
the underlying protocols.

3. Motivations

Though the existing drafts discuss bfd interactions with  applications
with Graceful Restart and ways of implementing in  serving  successful
GR, the drafts itself have some exceptions and caveats  applied.  This
draft in particular discusses the issues in  the  following  scenarios
and  provides  a  generic  solution  that  would  scale   for   future
applications and to provide a solution that works fine for all types
of bfd implementations.

A.Palanivelan                                                  [Page 3]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt      Apr 2010


*  Unplanned  restart.
*  Planned restart with a control protocol such  as  ISIS,which  cannot
   signal GR.
*  BFD  co-existing  with  BB  configs

This document tries to  address  the  above  issues  in  specific  and
Graceful restart mechanism  in  general,  for  bfd.  3.1  Planned  and
Unplanned Restarts with control  protocols  The  existing  bfd  drafts
suggest administratively disabling bfd prior to the start of GR.  But,
this works only for planned restarts and not for  unplanned  restarts.
This also does not work for  a  protocol  such  as  isis  that  cannot
signal a planned restart.

For a Planned restart where  a  control  protocol  can  signal  before
restarting, if a BFD session failure occurs during the restart, it  is
recommended in the existing draft(s)  that,  such  a  planned  restart
SHOULD NOT be aborted and the session failure SHOULD NOT result  in  a
topology change  being  signaled  in  the  control  protocol.  Control
protocols that cannot signal a planned restart depend on the  recently
restarted system to signal the Graceful Restart prior to  the  control
protocol adjacency timeout.

In most cases, whether the restart is  planned  or  unplanned,  it  is
likely that the BFD session will  time  out  prior  to  the  onset  of
Graceful Restart, and a topology change SHALL be signaled.  This  type
of  implementation  shall  impact  non-stop   routing   and   non-stop
forwarding  support  using  GR-enabled  protocols  and   provides   an
opportunity to review the existing bfd  implementations  and  improve.
3.2 BFD Co-existing with BB configs  In  a  real  time  scenario  with
Broadband configurations,it is highly likely that the bfd sessions  do
not survive a Graceful restart.

Assume a router at PE that has  active  DHCP  sessions  with  a  large
number of clients (say 16k). During a  planned  restart,  it  is  also
likely that the DHCP clients request for renewal of IP address to  the
server  (restarting  router)  at  that  time.  When  the   router   is
restarting, these requests do not reach the router.  But,  when  these
requests reach the router when the router has just come  up,  it  will
treat these requests at a high priority and responds to them. When  we
have thousands of such requests to the restarting router,  the  router
shall spend a major part of its first second of uptime  in  addressing
these requests. In this scenario, a control protocol like ospfv2  that
has GR enabled [OSPF-GRACE], shall withstand the restart for the
specified  restart interval (as it will be in seconds) and it is likely
to  survive  the restart in maintaining its forwarding plane.
In the same scenario, if bfd is enabled  for  ospfv2, for  an unplanned

A.Palanivelan                                                  [Page 4]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt      Apr 2010

restart, the  (bfd) neighbor router will be expecting bfd control packets
in  milliseconds interval and during the restart process, is likely  to
timeout,  also impacting the associated ospfv2 adjacency and  resulting
in  loss  of traffic.

The scenario will be the same for bfd with a protocol such  as  is-is
[ISIS-GRACE], where the problem  is  likely  to  be  seen  for  a
planned/unplanned restarts.

4. Extensions to BFD

This draft introduces a new diag value to indicate that  the  neighbor
is restarting and provisions to  configure  graceful  restart  timers.

The Generic BFD Control  Packet  Format  shown  below  introduces  two
additional  sections  "My  Restart   Interval"   and   "Your   Restart
Interval".

         0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Vers |  Diag   |Sta|P|F|C|A|D|M|  Detect Mult  |    Length     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       My Discriminator                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Your Discriminator                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Desired Min TX Interval                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                   Required Min RX Interval                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Required Min Echo RX Interval                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 My Restart Interval                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Your Restart Interval                         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


        4.1 Version (Vers)
        The version of bfd defined by this  draft,  that  has  support
        for gr  configuration  and  a  diag  for  neighbor  restarting
        state, shall have a value of 2.


A.Palanivelan                                                  [Page 5]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt      Apr 2010

    4.2  Diagnostic  (Diag)
        A diagnostic code specifying the  local  system's  reason  for
        the last change in session state.  A  new  diag  value  9  for
        "Neighbor   Restarting" is introduced in this draft.

        Values are:
        0 -- No Diagnostic
        1 -- Control Detection Time Expired
        2 -- Echo Function Failed
        3 -- Neighbor Signaled Session Down
        4 -- Forwarding Plane Reset
        5 -- Path Down
        6 -- Concatenated  Path  Down
        7 -- Administratively  Down
        8 -- Reverse Concatenated Path Down
        9 - Neighbor  Restarting
        10-31 -- Reserved for future use

        This field allows remote systems to determine the reason  that
        the previous session failed.


        4.3 My Restart Interval
        This  is  the  restart  interval,in   microseconds,   of   the
        transmitting system advertised to the remote  system.  In  the
        case of a restart (of transmitting system), the remote  system
        is xpected to keep the bfd session up  for  this  duration  of
        time.

        4.4 Your Restart Interval
        The  restart  interval,in  microseconds,  received  from   the
        corresponding remote system. In the  case  of  a  restart  (of
        remote system), the transmitting system is  expected  to  keep
        the bfd session up for this duration of time.


A.Palanivelan                                                  [Page 6]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt      Apr 2010


5. Theory of Operation

The system that  has  support  for  high-availability,  when  using  a
routing protocol  that  is  GR  enabled,  shall  continue  to  forward
traffic during a restart.when bfd is enabled on such  a  protocol,  it
is expected to assist the process than disturb it.  With  current  bfd
implementations, the bfd sessions  do  not  survive  a  restart  under
different conditions.An Unplanned restart or a planned restart with  a
protocol such as isis that cannot signal about restart,  are  some  of
the conditions where bfd config is set to impact  a  high-availability
situation.  Though  there  are  certain  implementations  adopted   by
various companies to make bfd survive restarts, there  is  no  uniform
method of achieving this and is  likely  to  fail  when  interop  with
routers from other companies.This draft proposes  a  standard  way  of
achieving this objective.

This draft recommends the introduction of a  new  diag  value  (9  for
"Neighbor restarting"), new version (2 for gr supported bfd)  and  two
additional sections to the bfd packet format.This design  is  expected
to provide a capability to bfd in withstanding restart  scenarios,  in
complementing the associated  protocol.This  shall  work  consistently
irespective of the bfd mode  or  protocol  or  the  type  of  restart.

This bfd implementation shall have its version field set  to  2,  that
indicates the support for GR.The two new sections to  the  bfd  packet
format,"My Restart Interval" and  "Your  Restart  interval"  shall  be
used to exchange the GR timers info. between the systems. "My  Restart
Interval" is  the  time  interval  in  microseconds,that  this  system
expects its remote system to wait for, before bringing  down  its  bfd
session  with  this  system.  "Your  Restart  Interval"  is  the  time
interval in microseconds, specified by  the  remote  system,  that  it
expects this system,  to  wait  for,  before  bringing  down  its  bfd
session with this system.

The initial bfd packet exchange  from  the  system  to  remote  system
shall have the configured value  for  the  "My  Restart  Interval"  or
0.The "Your Restart Interval" will reflect the value received  in  "My
Restart Inteval" from the corresponding remote system or  is  Zero  if
value is unknown.A value of Zero for  "Your  Restart  Interval"  shall
mean that the bfd gr is diabled at the  remote  end  and  similarly  a
value of Zero for "My Restart Interval" shall  mean  that  bfd  gr  is
disabled at the transmitting system.This effectively indicates to  the
other system if there is a requirement for it  to  wait  for  "restart
interval" before timer expiry or not,but doesn't limit the  system  to
act  as  a  gr-helper.In  other  words,   all   systems   with   bfdv2
configurations shall act as GR helpers.

Once the packet exchanges  are  complete  and  the  bfd  sessions  are
up,every bfd session will have info,  about  the  time  interval,  its
remote system will wait during a Restart and also  the  time  interval
this system has  to  wait,when  the  remote  system  restarts.The  "My
restart interval" value can be modified after the  session  is  up,and

A.Palanivelan                                                  [Page 7]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt     Apr 2010


in this case, the packet exchanges shall sync up the restart  interval
times (My and Your) on both the sides appropriately. The  "My  Restart
Interval" configured shall have a value of 0 or a value more than  its
(Tx  interval  *  Multiplier)  value.The  system   shall   not   allow
configuration of any value between these values.

For  Planned  restarts,  with  bfd  sessions  succesfully  up  with  a
protocol such as ospfv2 and gr enabled,ospf shall signal its  adjacent
neighbor (al o a ospfv2-bfd neighbor)  that  a  restart  is  about  to
begin. The bfd diag at the transmitting system  (Restarter)  shall  be
set to  a  value  of  9  (Neighbor  Restarting)  if  its  "My  Restart
Interval" has a value  other  than  0,  and  bfd  shall  maintain  its
neighborship with  the  remote  system  for  "Your  Restart  Interval"
time(at remote neighbor) and the remote system shall  not  bring  down
the adjacency,knowing that the neighbor is restarting  (known  through
the diag value).A timer shall be started to wait till the "your restart
interval" and once the gr process is complete, shall be reset to "0".
The diag value is also reset to 0.

For  Planned  restarts,  with  bfd  sessions  succesfully  up  with  a
protocol such as  isis  and  gr  enabled,isis  shall  not  signal  its
adjacent neighbor (also a isis-bfd neighbor) that a restart  is  about
to begin.Here again, the remote system shall  get  to  know  that  the
other end is restarting,only after the restart begins.The bfd diag  at
the transmitting system (Restarter) shall be  set  to  a  value  of  9
(Neighbor Restarting) if its "My Restart Interval" has a  value  other
than 0, and bfd  shall  maintain  its  neighborship  with  the  remote
system for "Your Restart Interval" time (at remote neighbor)  and  the
remote system shall not bring  down  the  adjacency,knowing  that  the
neighbor is restarting(known through the diag value).


For Unplanned restarts,the system cannot signal to its  neighbor  that
a restart is  about  to  begin.In  this  scenario,  Once  the  restart
begins, the system will  signal  the  restart,at  the  first  possible
instance.The bfd diag at the transmitting system(Restarter)  shall  be
set to a value of 9 (Neighbor Restarting)if its "My Restart  Interval"
has a value other than 0, and  bfd  shall  maintain  its  neighborship
with the remote system for "Your Restart  Interval"  time  (at  remote
neighbor)  and  the  remote  system   shall   not   bring   down   the
adjacency,knowing that the neighbor is restarting (known  through  the
diag value). It may also be noted that attempting a GR  for  unplanned
restart may not be a good idea, since  the  router  may  not  properly
prepare  for  a  restart.The  implementators,   in   this   case,shall
optionally provide a knob to turn the option off.

A.Palanivelan                                                  [Page 8]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt     Apr 2010


6. Security Considerations

Security considerations discussed in [BFD], [BFD-1HOP] apply to this
document.

7. IANA Considerations

This document currently defines a Diag  value  of  9  to  be  used  to
specify  "Neighbor  Restarting"  This  document  introduces  two   new
sections "My Restart Interval" and "Your Restart Interval" to the  bfd
generic packet format.


8. References

8.1. Normative References

   [BFD] Katz, D., and Ward, D., "Bidirectional Forwarding Detection",
       draft-ietf-bfd-base-09.txt, February, 2009.

   [BFD-1HOP] Katz, D., and Ward, D., "BFD for IPv4 and IPv6 (Single
       Hop)", draft-ietf-bfd-v4v6-1hop-08.txt, February, 2009.



8.2. Informative References

   [ISIS-GRACE] Shand, M., and Ginsberg, L., "Restart signaling for IS-
       IS", RFC 5306, October 2008.

   [OSPF-GRACE] Moy, J., et al, "Graceful OSPF Restart", RFC 3623,
       November 2003.




A.Palanivelan                                                   [Page 9]


Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt       Apr 2010


Authors' Addresses

Palanivelan A
Cisco Systems,
Bangalore,India.

Email: apvelan@cisco.com



























A.Palanivelan                                                   [Page 10]

Internet Draft         draft-palanivelan-bfd-v2-gr-04.txt       Apr 2010