xref: /openbsd/usr.sbin/bgpd/bgpd.8 (revision fde16b57)
1*fde16b57Sclaudio.\" $OpenBSD: bgpd.8,v 1.84 2025/01/17 12:38:14 claudio Exp $
29fa69b97Shenning.\"
3050527e1Shenning.\" Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
49fa69b97Shenning.\"
59fa69b97Shenning.\" Permission to use, copy, modify, and distribute this software for any
69fa69b97Shenning.\" purpose with or without fee is hereby granted, provided that the above
79fa69b97Shenning.\" copyright notice and this permission notice appear in all copies.
89fa69b97Shenning.\"
99fa69b97Shenning.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
109fa69b97Shenning.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
119fa69b97Shenning.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
129fa69b97Shenning.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
139fa69b97Shenning.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
149fa69b97Shenning.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
159fa69b97Shenning.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
169fa69b97Shenning.\"
17*fde16b57Sclaudio.Dd $Mdocdate: January 17 2025 $
189fa69b97Shenning.Dt BGPD 8
199fa69b97Shenning.Os
209fa69b97Shenning.Sh NAME
219fa69b97Shenning.Nm bgpd
22328c3f4bSjmc.Nd Border Gateway Protocol (BGP) routing daemon
239fa69b97Shenning.Sh SYNOPSIS
249fa69b97Shenning.Nm bgpd
259fa69b97Shenning.Bk -words
263eb1af85Sjob.Op Fl cdnvV
27163d879bSjmc.Op Fl D Ar macro Ns = Ns Ar value
289fa69b97Shenning.Op Fl f Ar file
299fa69b97Shenning.Ek
309fa69b97Shenning.Sh DESCRIPTION
319fa69b97Shenning.Nm
32907a6a00Sjmcis a Border Gateway Protocol
33907a6a00Sjmc.Pq BGP
34907a6a00Sjmcdaemon which manages the network routing tables.
3592c7fe1eSjmcIts main purpose is to exchange information
3692c7fe1eSjmcconcerning
3792c7fe1eSjmc.Qq network reachability
3892c7fe1eSjmcwith other BGP systems.
39907a6a00Sjmc.Nm
40907a6a00Sjmcuses the Border Gateway Protocol, Version 4,
4119ee4fccSjmcas described in RFC 4271.
422163651fSclaudio.Pp
432163651fSclaudioBGP is an exterior gateway protocol using a multiple step decision process
442163651fSclaudioto find the best path.
452163651fSclaudioAdvanced filtering can be used to influence the route
462163651fSclaudiodecision for traffic engineering.
472163651fSclaudioThe session engine of
482163651fSclaudio.Nm
492163651fSclaudiois responsible for maintaining the TCP session with each neighbor.
502163651fSclaudioUpdates are passed to the Route Decision Engine (RDE) where the paths
512163651fSclaudioare filtered and used to compute a Routing Information Base (RIB).
522163651fSclaudioThe parent process is responsible for keeping the RIB in sync with
532163651fSclaudiothe kernel routing table.
542163651fSclaudio.Pp
552163651fSclaudioThe route decision process selects the best path by evaluating all paths to
562163651fSclaudiothe same destination.
572163651fSclaudioThe decision process continues to the next step if paths have equal attributes.
582163651fSclaudioPaths that are less preferred are taken out of consideration until there is
592163651fSclaudioonly one path left.
602163651fSclaudio.Bl -enum -width 42 -offset bula
612163651fSclaudio.It
622163651fSclaudioAll paths with errors or loops are not eligible.
632163651fSclaudio.It
642163651fSclaudioPaths with an unreachable nexthop are not eligible.
652163651fSclaudioAfter this step all remaining paths are valid.
662163651fSclaudio.It
672163651fSclaudioThe path with the highest
682163651fSclaudio.Em LOCAL_PREF
692163651fSclaudiois selected.
702163651fSclaudio.It
712163651fSclaudioThe path with the shortest
722163651fSclaudio.Em AS path
732163651fSclaudioattribute is selected.
742163651fSclaudio.It
752163651fSclaudioThe
762163651fSclaudio.Em ORIGIN
772163651fSclaudioattribute is compared.
782163651fSclaudioThe order is IGP before EGP before incomplete origins.
792163651fSclaudio.It
802163651fSclaudioThe path with the lowest
812163651fSclaudio.Em MULTI_EXIT_DISC
822163651fSclaudiometric is selected.
832163651fSclaudioNormally, this value is only considered when choosing between multiple
842163651fSclaudioroutes sent by the same neighbouring AS.
852163651fSclaudioHowever, if
862163651fSclaudio.Dq Li rde med compare always
872163651fSclaudiois set in the configuration, the metric is compared for routes sent by any AS.
882163651fSclaudio.It
892163651fSclaudioComparison of the BGP session type.
902163651fSclaudioPaths learned over an external (EBGP) session are preferred over those
912163651fSclaudiolearned via an internal (IBGP) session.
922163651fSclaudio.It
9325b45e4dSdanjThe path with the highest local
942163651fSclaudio.Em weight
952163651fSclaudiois selected.
962163651fSclaudio.It
972163651fSclaudioIf
982163651fSclaudio.Dq Li rde route-age evaluate
992163651fSclaudiois set then the oldest path is selected.
1002163651fSclaudio.It
1012163651fSclaudioThe path coming from the neighbor with the lowest
1022163651fSclaudio.Em BGP ID
1032163651fSclaudiowins.
1042163651fSclaudioIf the
1052163651fSclaudio.Em ORIGINATOR_ID
10641ce3b17Snaddyattribute is present, that value will be used in the comparison instead.
1072163651fSclaudio.It
1082163651fSclaudioThe path with the shortest
1092163651fSclaudio.Em CLUSTER_LIST
1102163651fSclaudioattribute is selected.
1112163651fSclaudioIf it is not present then a length of 0 is used in the comparison.
1122163651fSclaudio.It
1132163651fSclaudioThe path coming from the peer with the lowest IP address is selected.
1148e446e65SjmcIPv4 sessions will be preferred over IPv6 ones.
1152163651fSclaudio.El
1162163651fSclaudio.Pp
1172163651fSclaudioAttributes set by filters can be used to tip the decision process to prefer
1182163651fSclaudioparticular paths over others.
1192163651fSclaudioThis can be achieved by changing the
1202163651fSclaudio.Em localpref ,
1212163651fSclaudio.Em med ,
1222163651fSclaudioor
1232163651fSclaudio.Em weight
1242163651fSclaudioattributes.
1252163651fSclaudioAS path prepending or changing the
1262163651fSclaudio.Em med
1272163651fSclaudioor
1282163651fSclaudio.Em origin
129925e56edSlumattribute can be used to influence the routing behaviour on remote systems.
130907a6a00Sjmc.Pp
131f2cc1b42SlandryTo have
132907a6a00Sjmc.Nm
133f2cc1b42Slandryenabled at boot time, use
134f2cc1b42Slandry.Dq rcctl enable bgpd ,
135f2cc1b42Slandrywhich sets
136907a6a00Sjmc.Pp
137f2cc1b42Slandry.Dl bgpd_flags=\(dq\(dq
138907a6a00Sjmc.Pp
139f2cc1b42Slandryin
140f2cc1b42Slandry.Xr rc.conf.local 8 .
141907a6a00Sjmc.Pp
142907a6a00SjmcWhen
143907a6a00Sjmc.Nm
144907a6a00Sjmcstarts up, it reads settings from a configuration file,
145907a6a00Sjmctypically
146907a6a00Sjmc.Xr bgpd.conf 5 .
147907a6a00SjmcA running
148907a6a00Sjmc.Nm
149907a6a00Sjmcprocess can be controlled using the
150907a6a00Sjmc.Xr bgpctl 8
151907a6a00Sjmcutility.
152907a6a00Sjmc.Pp
1539fa69b97ShenningThe options are as follows:
154907a6a00Sjmc.Bl -tag -width "-f fileXXX"
1557f5c1560Shenning.It Fl c
1567f5c1560ShenningForce
1577f5c1560Shenning.Nm
1587f5c1560Shenningto do
1597f5c1560Shenning.Xr carp 4
160b882c823Shenningdemotion at startup when the
1617f5c1560Shenning.Em demote
1627f5c1560Shenningfunctionality is used.
1637f5c1560ShenningNormally,
1647f5c1560Shenning.Nm
165b882c823Shenningwill only do demotion at startup when the demotion counter for the group
166b882c823Shenningin question is already greater than 0.
167b882c823Shenning.Nm
168b882c823Shenningwill start handling demotion after all sessions with demotion configured for
169b882c823Shenningthe given group have been successfully established.
1707f5c1560ShenningAt system startup,
1717f5c1560Shenning.Xr rc 8
1727f5c1560Shenninghas the demotion counter for the group
1737f5c1560Shenning.Em carp
1747f5c1560Shenningincreased until after
1757f5c1560Shenning.Nm
1767f5c1560Shenningis started, so this option should
1777f5c1560Shenning.Em not
1787f5c1560Shenningbe used in
1797f5c1560Shenning.Xr rc.conf 8 .
180907a6a00Sjmc.It Fl D Ar macro Ns = Ns Ar value
1819fa69b97ShenningDefine
1829fa69b97Shenning.Ar macro
1839fa69b97Shenningto be set to
1849fa69b97Shenning.Ar value
1859fa69b97Shenningon the command line.
1869fa69b97ShenningOverrides the definition of
1879fa69b97Shenning.Ar macro
1889fa69b97Shenningin the configuration file.
1897528a928Shenning.It Fl d
190907a6a00SjmcDo not daemonize.
191907a6a00SjmcIf this option is specified,
192907a6a00Sjmc.Nm
193907a6a00Sjmcwill run in the foreground and log to
19470bddddaSmcbride.Em stderr .
1959fa69b97Shenning.It Fl f Ar file
196907a6a00SjmcUse
197907a6a00Sjmc.Ar file
198907a6a00Sjmcas the configuration file,
199907a6a00Sjmcinstead of the default
200907a6a00Sjmc.Pa /etc/bgpd.conf .
201ea5db239Shenning.It Fl n
202ea5db239ShenningConfigtest mode.
203907a6a00SjmcOnly check the configuration file for validity.
2049fa69b97Shenning.It Fl v
2059fa69b97ShenningProduce more verbose output.
2063eb1af85Sjob.It Fl V
2073eb1af85SjobShow the version and exit.
2089fa69b97Shenning.El
2099fa69b97Shenning.Sh FILES
210f2c1f8a9Sjmc.Bl -tag -width "/var/run/bgpd.sock.<rdomain>" -compact
2119fa69b97Shenning.It Pa /etc/bgpd.conf
212f2c1f8a9SjmcDefault
2139fa69b97Shenning.Nm
214f2c1f8a9Sjmcconfiguration file.
215f2c1f8a9Sjmc.It Pa /var/run/bgpd.sock.<rdomain>
216f2c1f8a9SjmcDefault
2179f8162a8Sclaudio.Nm
218f2c1f8a9Sjmccontrol socket, where
219f2c1f8a9Sjmc.Ar <rdomain>
220f2c1f8a9Sjmcis the routing domain in which
221f2c1f8a9Sjmc.Nm
222f2c1f8a9Sjmchas been started.
2239fa69b97Shenning.El
224d783ce62Sjmc.Sh SEE ALSO
2258666bbbfShenning.Xr bgpd.conf 5 ,
226afc740faSjmc.Xr bgpctl 8 ,
227afc740faSjmc.Xr bgplg 8 ,
228afc740faSjmc.Xr bgplgsh 8
229e8dc2910Sjmc.Sh STANDARDS
23009376f25Sjmc.Rs
23109376f25Sjmc.%D August 1996
232fab29768Sjmc.%R RFC 1997
233fab29768Sjmc.%T BGP Communities Attribute
23409376f25Sjmc.Re
235e8dc2910Sjmc.Pp
23609376f25Sjmc.Rs
23709376f25Sjmc.%D August 1998
238fab29768Sjmc.%R RFC 2385
239fab29768Sjmc.%T Protection of BGP Sessions via the TCP MD5 Signature Option
24009376f25Sjmc.Re
241e8dc2910Sjmc.Pp
24209376f25Sjmc.Rs
2434b55bce2Sclaudio.%D March 1999
244fab29768Sjmc.%R RFC 2545
245fab29768Sjmc.%T Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing
2464b55bce2Sclaudio.Re
247e8dc2910Sjmc.Pp
2484b55bce2Sclaudio.Rs
24909376f25Sjmc.%D September 2000
250fab29768Sjmc.%R RFC 2918
251fab29768Sjmc.%T Route Refresh Capability for BGP-4
25209376f25Sjmc.Re
253e8dc2910Sjmc.Pp
25409376f25Sjmc.Rs
2551db466ccSjmc.%D April 2004
256fab29768Sjmc.%R RFC 3765
257fab29768Sjmc.%T NOPEER Community for Border Gateway Protocol (BGP) Route Scope Control
2581db466ccSjmc.Re
259e8dc2910Sjmc.Pp
2601db466ccSjmc.Rs
261fab29768Sjmc.%D January 2006
262fab29768Sjmc.%R RFC 4271
263fab29768Sjmc.%T A Border Gateway Protocol 4 (BGP-4)
264fab29768Sjmc.Re
265e8dc2910Sjmc.Pp
266fab29768Sjmc.Rs
267fab29768Sjmc.%D February 2006
268536f41e5Sclaudio.%R RFC 4360
269fab29768Sjmc.%T BGP Extended Communities Attribute
270536f41e5Sclaudio.Re
271e8dc2910Sjmc.Pp
272536f41e5Sclaudio.Rs
273fab29768Sjmc.%D February 2006
274610bcb44Sclaudio.%R RFC 4364
275fab29768Sjmc.%T BGP/MPLS IP Virtual Private Networks (VPNs)
276610bcb44Sclaudio.Re
277e8dc2910Sjmc.Pp
278610bcb44Sclaudio.Rs
279fab29768Sjmc.%D April 2006
280e1febd93Sclaudio.%R RFC 4456
281fab29768Sjmc.%T "BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)"
282e1febd93Sclaudio.Re
283e8dc2910Sjmc.Pp
284e1febd93Sclaudio.Rs
285fab29768Sjmc.%D April 2006
2869d8bd755Sclaudio.%R RFC 4486
287fab29768Sjmc.%T Subcodes for BGP Cease Notification Message
2889d8bd755Sclaudio.Re
289e8dc2910Sjmc.Pp
2909d8bd755Sclaudio.Rs
2913856cb71Sclaudio.%D January 2007
2923856cb71Sclaudio.%R RFC 4724
2933856cb71Sclaudio.%T Graceful Restart Mechanism for BGP
2943856cb71Sclaudio.Re
2953856cb71Sclaudio.Pp
2963856cb71Sclaudio.Rs
297c6b0f9fcSclaudio.%D January 2007
298fab29768Sjmc.%R RFC 4760
299fab29768Sjmc.%T Multiprotocol Extensions for BGP-4
300c6b0f9fcSclaudio.Re
301e8dc2910Sjmc.Pp
302a001850fSclaudio.Rs
303fab29768Sjmc.%D October 2007
304fab29768Sjmc.%R RFC 5082
305fab29768Sjmc.%T The Generalized TTL Security Mechanism (GTSM)
306fab29768Sjmc.Re
307e8dc2910Sjmc.Pp
308fab29768Sjmc.Rs
30949dc52c7Sclaudio.%D February 2009
310fab29768Sjmc.%R RFC 5492
311fab29768Sjmc.%T Capabilities Advertisement with BGP-4
31249dc52c7Sclaudio.Re
313e8dc2910Sjmc.Pp
31449dc52c7Sclaudio.Rs
3153856cb71Sclaudio.%D October 2009
3163856cb71Sclaudio.%R RFC 5668
3173856cb71Sclaudio.%T 4-Octet AS Specific BGP Extended Community
3183856cb71Sclaudio.Re
3193856cb71Sclaudio.Pp
3203856cb71Sclaudio.Rs
32181367ccfSclaudio.%D June 2011
32281367ccfSclaudio.%R RFC 6286
32381367ccfSclaudio.%T Autonomous-System-Wide Unique BGP Identifier for BGP-4
32481367ccfSclaudio.Re
32581367ccfSclaudio.Pp
32681367ccfSclaudio.Rs
3273856cb71Sclaudio.%D May 2012
3283856cb71Sclaudio.%R RFC 6608
3293856cb71Sclaudio.%T Subcodes for BGP Finite State Machine Error
3303856cb71Sclaudio.Re
3313856cb71Sclaudio.Pp
3323856cb71Sclaudio.Rs
3330f12b4adSclaudio.%D Dec 2012
3340f12b4adSclaudio.%R RFC 6793
3350f12b4adSclaudio.%T BGP Support for Four-Octet Autonomous System (AS) Number Space
3360f12b4adSclaudio.Re
3370f12b4adSclaudio.Pp
3380f12b4adSclaudio.Rs
339f66325b7Sphessler.%D August 2015
340f66325b7Sphessler.%R RFC 7606
341f66325b7Sphessler.%T Revised Error Handling for BGP UPDATE Messages
342d2d88175Sclaudio.Re
343e8dc2910Sjmc.Pp
344e8dc2910Sjmc.Rs
345d1d78ab3Sjob.%D October 2011
346d1d78ab3Sjob.%R RFC 6396
347d1d78ab3Sjob.%T Multi-Threaded Routing Toolkit (MRT) Routing Information Export Format
348e8dc2910Sjmc.Re
349e8dc2910Sjmc.Pp
350b972ce67Sclaudio.Rs
351866dcea5Sclaudio.%D May 2012
352fab29768Sjmc.%R RFC 6608
353fab29768Sjmc.%T Subcodes for BGP Finite State Machine Error
354566a7707Sclaudio.Re
3550561b344Sphessler.Pp
3560561b344Sphessler.Rs
35775ddeeb9Sclaudio.%D July 2014
35875ddeeb9Sclaudio.%R RFC 7313
35975ddeeb9Sclaudio.%T Enhanced Route Refresh Capability for BGP-4
36075ddeeb9Sclaudio.Re
36175ddeeb9Sclaudio.Pp
36275ddeeb9Sclaudio.Rs
3634881d521Sclaudio.%D August 2015
3644881d521Sclaudio.%R RFC 7607
3654881d521Sclaudio.%T Codification of AS 0 Processing
3664881d521Sclaudio.Re
3674881d521Sclaudio.Pp
3684881d521Sclaudio.Rs
369b90d20cdSclaudio.%D July 2016
370b90d20cdSclaudio.%R RFC 7911
371b90d20cdSclaudio.%T Advertisement of Multiple Paths in BGP
372b90d20cdSclaudio.Re
373b90d20cdSclaudio.Pp
374b90d20cdSclaudio.Rs
3753856cb71Sclaudio.%D September 2016
3763856cb71Sclaudio.%R RFC 7947
3773856cb71Sclaudio.%T Internet Exchange BGP Route Server
3783856cb71Sclaudio.Re
3793856cb71Sclaudio.Pp
3803856cb71Sclaudio.Rs
38114af1330Sclaudio.%D May 2017
38214af1330Sclaudio.%R RFC 8050
38314af1330Sclaudio.%T Multi-Threaded Routing Toolkit (MRT) Routing Information Export Format with BGP Additional Path Extensions
38414af1330Sclaudio.Re
38514af1330Sclaudio.Pp
38614af1330Sclaudio.Rs
3879843427cSphessler.%D February 2017
3889843427cSphessler.%R RFC 8092
3890561b344Sphessler.%T BGP Large Communities Attribute
3900561b344Sphessler.Re
3910561b344Sphessler.Pp
3920561b344Sphessler.Rs
393f872142bSclaudio.%D March 2017
394f872142bSclaudio.%R RFC 8097
395f872142bSclaudio.%T BGP Prefix Origin Validation State Extended Community
396f872142bSclaudio.Re
397d7f8f07dSjmc.Pp
398d7f8f07dSjmc.Rs
399d7f8f07dSjmc.%D July 2017
400d7f8f07dSjmc.%R RFC 8203
401d7f8f07dSjmc.%T BGP Administrative Shutdown Communication
402d7f8f07dSjmc.Re
403f390b1a7Sclaudio.Pp
404f390b1a7Sclaudio.Rs
405bd9df44eSclaudio.%D September 2017
406bd9df44eSclaudio.%R RFC 8210
407bd9df44eSclaudio.%T The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1
408bd9df44eSclaudio.Re
409bd9df44eSclaudio.Pp
410bd9df44eSclaudio.Rs
411f390b1a7Sclaudio.%D July 2017
412f390b1a7Sclaudio.%R RFC 8212
413f390b1a7Sclaudio.%T Default External BGP (EBGP) Route Propagation Behavior without Policies
414f390b1a7Sclaudio.Re
415006eafffSclaudio.Pp
416006eafffSclaudio.Rs
417006eafffSclaudio.%D March 2018
418006eafffSclaudio.%R RFC 8326
419006eafffSclaudio.%T Graceful BGP Session Shutdown
420006eafffSclaudio.Re
421df79d77dSclaudio.Pp
422df79d77dSclaudio.Rs
4236c15f943Sclaudio.%D March 2019
4246c15f943Sclaudio.%R RFC 8538
4256c15f943Sclaudio.%T Notification Message Support for BGP Graceful Restart
4266c15f943Sclaudio.Re
4276c15f943Sclaudio.Pp
4286c15f943Sclaudio.Rs
42925cbba3aSclaudio.%D October 2019
43025cbba3aSclaudio.%R RFC 8654
43125cbba3aSclaudio.%T Extended Message Support for BGP
43225cbba3aSclaudio.Re
43325cbba3aSclaudio.Pp
43425cbba3aSclaudio.Rs
435927cc6daSclaudio.%D November 2020
436927cc6daSclaudio.%R RFC 8950
437927cc6daSclaudio.%T Advertising IPv4 Network Layer Reachability Information (NLRI) with an IPv6 Next Hop
438927cc6daSclaudio.Re
439927cc6daSclaudio.Pp
440927cc6daSclaudio.Rs
44141c1c374Sclaudio.%D December 2020
44241c1c374Sclaudio.%R RFC 8955
44341c1c374Sclaudio.%T Dissemination of Flow Specification Rules
44441c1c374Sclaudio.Re
44541c1c374Sclaudio.Pp
44641c1c374Sclaudio.Rs
44741c1c374Sclaudio.%D December 2020
44841c1c374Sclaudio.%R RFC 8956
44941c1c374Sclaudio.%T Dissemination of Flow Specification Rules for IPv6
45041c1c374Sclaudio.Re
45141c1c374Sclaudio.Pp
45241c1c374Sclaudio.Rs
453df79d77dSclaudio.%D July 2021
454df79d77dSclaudio.%R RFC 9072
455df79d77dSclaudio.%T Extended Optional Parameters Length for BGP OPEN Message
456df79d77dSclaudio.Re
457c9132633Sclaudio.Pp
458c9132633Sclaudio.Rs
459c9132633Sclaudio.%D May 2022
460c9132633Sclaudio.%R RFC 9234
461c9132633Sclaudio.%T Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages
462c9132633Sclaudio.Re
4636ac17ef2Sjob.Pp
4646ac17ef2Sjob.Rs
46564468f86Sjob.%D November 2024
46664468f86Sjob.%R RFC 9687
46764468f86Sjob.%T Border Gateway Protocol 4 (BGP-4) Send Hold Timer
46864468f86Sjob.Re
46964468f86Sjob.Pp
47064468f86Sjob.Rs
4716ac17ef2Sjob.%D October 2022
4726ac17ef2Sjob.%R draft-ietf-sidrops-aspa-verification
4736ac17ef2Sjob.%T BGP AS_PATH Verification Based on Resource Public Key Infrastructure (RPKI) Autonomous System Provider Authorization (ASPA) Objects
4746ac17ef2Sjob.Re
4759fa69b97Shenning.Sh HISTORY
4769fa69b97ShenningThe
4779fa69b97Shenning.Nm
4789fa69b97Shenningprogram first appeared in
4799fa69b97Shenning.Ox 3.5 .
480