text:
Network Working Group G. Huston
Request for Comments: 3221 Internet Architecture Board
Category: Informational December 2001
Commentary on
Inter-Domain Routing in the Internet
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document examines the various longer term trends visible within
the characteristics of the Internet's BGP table and identifies a
number of operational practices and protocol factors that contribute
to these trends. The potential impacts of these practices and
protocol properties on the scaling properties of the inter-domain
routing space are examined.
This document is the outcome of a collaborative exercise on the part
of the Internet Architecture Board.
1. Introduction................................................. 2
2. Network Scaling and Inter-Domain Routing ................... 2
3. Measurements of the total size of the BGP Table ............ 4
4. Related Measurements derived from BGP Table ................ 7
5. Current State of inter-AS routing in the Internet .......... 11
6. Future Requirements for the Exterior Routing System ........ 14
7. Architectural Approaches to a scalable Exterior
Routing Protocol........................................... 15
8. Directions for Further Activity ............................ 21
9. Security Considerations .................................... 22
10. References ................................................. 23
11. Acknowledgements ........................................... 24
12. Author's Address ........................................... 24
13. Full Copyright Statement ................................... 25
Huston Informational [Page 1]
RFC 3221 Commentary on Inter-Domain Routing December 2001
These impacts include the potential for exhaustion of the existing
Autonomous System number space, increasing convergence times for
selection of stable alternate paths following withdrawal of route
announcements, the stability of table entries, and the average prefix
length of entries in the BGP table. The larger long term issue is
that of an increasingly denser inter-connectivity mesh between ASes,
causing a finer degree of granularity of inter-domain policy and
finer levels of control to undertake inter-domain traffic
Various approaches to a refinement of the inter-domain routing
protocol and associated operating practices that may provide superior
scaling properties are identified as an area for further
investigation.
2. Network Scaling and Inter-Domain Routing
Are there inherent scaling limitations in the technology of the
Internet or its architecture of deployment that may impact on the
ability of the Internet to meet escalating levels of demand? There
are a number of potential areas to search for such limitations.
These include the capacity of transmission systems, packet switching
capacity, the continued availability of protocol addresses, and the
capability of the routing system to produce a stable view of the
overall topology of the network. In this study we will look at this
latter capability with the objective of identifying some aspects of
the scaling properties of the Internet's routing system.
The basic structure of the Internet is a collection of networks, or
Autonomous Systems (ASes) that are interconnected to form a connected
domain. Each AS uses an interior routing system to maintain a
coherent view of the topology within the AS, and uses an exterior
routing system to maintain adjacency information with neighboring
ASes to create a view of the connectivity of the entire system.
This network-wide connectivity is described in the routing table used
by the BGP4 protocol (referred to as the Routing Information Base, or
RIB). Each entry in the table refers to a distinct route. The
attributes of the route, together with local policy constraints, are
used to determine the best path from the local AS to the AS that is
originating the route. Determining the 'best path' in this case is
determining which routing advertisement and associated next hop
address is the most preferred by the local AS. Within each local
BGP-speaking router this preferred route is then loaded into the
local RIB (Loc-RIB). This information is coupled with information
obtained from the local instance of the interior routing protocol to
form a Forwarding Information Base (or FIB), for use by the local
router's forwarding engine.
The BGP routing system is not aware of finer level of topology of the
network on a link-by-link basis within the local AS or within any
remote AS. From this perspective BGP can be seen as an inter-AS
connectivity maintenance protocol, as distinct from a link-level
topology management protocol, and the BGP routing table can be viewed
as a description of the current connectivity of the Internet using an
AS as the basic element of connectivity computation.
There is an associated dimension of policy determination within the
routing table. If an AS advertises a route to a neighboring AS, the
local AS is offering to accept traffic from the neighboring AS which
is ultimately destined to addresses described by the advertised
routing entry. If the local AS does not originate the route, then
the inference is that the local AS is willing to undertake the role
of transit provider for this traffic on behalf of some third party.
Similarly, an AS may or may not choose to accept a route from a
neighbor. Accepting a route implies that under some circumstances,
as determined by the local route selection parameters, the local AS
will use the neighboring AS to reach addresses spanned by the route.
The BGP routing domain is intended to maintain a coherent view of the
connectivity of the inter-AS domain, where connectivity is expressed
as a preference for 'shortest paths' to reach any destination address
as modulated by the connectivity policies expressed by each AS, and
coherence is expressed as a global constraint that none of the paths
contains loops or dead ends. The elements of the BGP routing domain
are routing entries, expressed as a span of addresses. All addresses
advertised within each routing entry share a common origin AS and a
common connectivity policy. The total size of the BGP table is
therefore a metric of the number of distinct routes within the
Internet, where each route describes a contiguous set of addresses
that share a common origin AS and a common reachability policy.
When the scaling properties of the Internet were studied in the early
1990s two critical factors identified in the study were, not
surprisingly, routing and addressing [2]. As more devices connect to
the Internet they consume addresses, and the associated function of
maintaining reachability information for these addresses, with an
assumption of an associated growth in the number of distinct provider
networks and the number of distinct connectivity policies, implies
ever larger routing tables. The work in studying the limitations of
the 32 bit IPv4 address space produced a number of outcomes,
including the specification of IPv6 [3], as well as the refinement of
techniques of network address translation [4] intended to allow some
degree of transparent interaction between two networks using
different address realms. Growth in the routing system is not
directly addressed by these approaches, as the routing space is the
cross product of the complexity of the inter-AS topology of the
network, multiplied by the number of distinct connectivity policies
multiplied by the degree of fragmentation of the address space. For
example, use of NAT may reduce the pressure on the number of public
addresses required by a single connected network, but it does not
necessarily imply that the network's connectivity policies can be
subsumed within the aggregated policy of a single upstream provider.
When an AS advertises a block of addresses into the exterior routing
space this entry is generally carried across the entire exterior
routing domain of the Internet. To measure the common
characteristics of the global routing table, it is necessary to
establish a point in the default-free part of the exterior routing
domain and examine the BGP routing table that is visible at that
3. Measurements of the total size of the BGP Table
Measurements of the size of the routing table were somewhat sporadic
to start, and a number of measurements were taken at approximate
monthly intervals from 1988 until 1992 by Merit [5]. This effort was
resumed in 1994 by Erik-Jan Bos at Surfnet in the Netherlands, who
commenced measuring the size of the BGP table at hourly intervals in
1994. This measurement technique was adopted by the author in 1997,
using a measurement point located at the edge of AS 1221 at Telstra
in Australia, again using an hourly interval for the measurement.
The initial measurements were of the number of routing entries
contained within the set of selected best paths. These measurements
were expanded to include the number of AS numbers, number of AS
paths, and a set of measurements relating to the prefix size of
routing table entries.
This data contains a view of the dynamics of the Internet's routing
table growth that spans some 13 years in total and includes a very
detailed view spanning the most recent seven years [6]. Looking at
just the total size of the BGP routing table over this period, it is
possible to identify four distinct phases of inter-AS routing
practice in the Internet.
3.1 Pre-CIDR Growth
The initial characteristics of the routing table size from 1988 until
April 1994 show definite characteristics of exponential growth. If
continued unchecked, this growth would have lead to saturation of the
available BGP routing table space in the non-default routers of the
time within a small number of years.
Estimates of the time at which this would've happened varied somewhat
from study to study, but the overall general theme of these
observations was that the growth rates of the BGP routing table were
exceeding the growth in hardware and software capability of the
deployed network, and that at some point in the mid-1990's, the BGP
table size would have grown to the point where it was larger than the
capabilities of available equipment to support.
3.2 CIDR Deployment
The response from the engineering community was the introduction of a
hierarchy into the inter-domain routing system. The intent of the
hierarchical routing structure was to allow a provider to merge the
routing entries for its customers into a single routing entry that
spanned its entire customer base. The practical aspects of this
change was the introduction of routing protocols that dispensed with
the requirement for the Class A, B and C address delineation,
replacing this scheme with a routing system that carried an address
prefix and an associated prefix length. This approached was termed
Classless Inter-Domain Routing (CIDR) [5].
A concerted effort was undertaken in 1994 and 1995 to deploy CIDR
routing in the Internet, based on encouraging deployment of the
CIDR-capable version of the BGP protocol, BGP4 [7].
The intention of CIDR was one of hierarchical provider address
aggregation, where a network provider was allocated an address block
from an address registry, and the provider announced this entire
block into the exterior routing domain as a single entry with a
single routing policy. Customers of the provider were encouraged to
use a sub-allocation from the provider's address block, and these
smaller routing elements were aggregated by the provider and not
directly passed into the exterior routing domain. During 1994 the
size of the routing table remained relatively constant at some 20,000
entries as the growth in the number of providers announcing address
blocks was matched by a corresponding reduction in the number of
address announcements as a result of CIDR aggregation.
3.3 CIDR Growth
For the next four years until the start of 1998, CIDR proved
effective in damping unconstrained growth in the BGP routing table.
During this period, the BGP table grew at an approximate linear rate,
adding some 10,000 entries per year.
A close examination of the table reveals a greater level of stability
in the routing system at this time. The short term (hourly)
variation in the number of announced routes reduced, both as a
percentage of the number of announced routes, and also in absolute
terms. One of the other benefits of using large aggregate address
blocks is that instability at the edge of the network is not
immediately propagated into the routing core. The instability at the
last hop is absorbed at the point where an aggregate route is used in
place of a collection of more specific routes. This, coupled with
widespread adoption of BGP route flap damping, was very effective in
reducing the short term instability in the routing space during this
3.4 Current Growth
In late 1998 the trend of growth in the BGP table size changed
radically, and the growth for the period 1998 - 2000 is again showing
all the signs of a re-establishment of a growth trend with strong
correlation to an exponential growth model. This change in the
growth trend appears to indicate that pressure to use hierarchical
address allocations and CIDR has been unable to keep pace with the
levels of growth of the Internet, and some additional factors that
impact the growth in the BGP table size have become more prominent in
the Internet. This has lead to a growth pattern in the total size of
the BGP table that has more in common with a compound growth model
than a linear model. A good fit of the data for the period from
January 1999 until December 2000 is a compound growth model of 42%
growth per year.
An initial observation is that this growth pattern points to some
weakening of the hierarchical model of connectivity and routing
within the Internet. To identify the characteristics of this recent
trend it is necessary to look at a number of related characteristics
of the routing table.
BGP table size data for the first half of 2001 shows different trends
at various measurement points in the Internet. Some measurement
points where the local AS has a relative larger number of more
specific routes show a steady state for the first half of 2001 with
no appreciable growth, while other measurement points where the local
AS has had a lower number of more specific routes initially show a
continuation of table size growth. There are a number of commonly
observed discontinuities in the data for 2001, corresponding to
events where a significant number of more specific entries have been
replaced by an encompassing aggregate prefix.
4. Related Measurements derived from BGP Table
The level of analysis of the BGP routing table has been extended in
an effort to identify the factors contributing to this growth, and to
determine whether this leads to some limiting factors in the
potential size of the routing space. Analysis includes measuring the
number of ASes in the routing system, and the number of distinct AS
paths, the range of addresses spanned by the table and average span
of each routing entry.
4.1 AS Number Consumption
Each network that is multi-homed within the topology of the Internet
and wishes to express a distinct external routing policy must use a
unique AS number to associate its advertised addresses with such a
policy. In general, each network is associated with a single AS, and
the number of ASes in the default-free routing table tracks the
number of entities that have unique routing policies. There are some
exceptions to this, including large global transit providers with
varying regional policies, where multiple ASes are associated with a
single network, but such exceptions are relatively uncommon.
The number of unique ASes present in the BGP table has been tracked
since late 1996, and the trend of AS number deployment over the past
four years is also one that matches a compound growth model with a
growth rate of 51% per year. As of the start of May 2001 there were
some 10,700 ASes visible in the BGP table. At a continued rate of
growth of 51% p.a., the 16 bit AS number space will be fully deployed
by August 2005. Work is underway within the IETF to modify the BGP
protocol to carry AS numbers in a 32-bit field. [8] While the
protocol modifications are relatively straightforward, the major
responsibility rests with the operations community to devise a
transition plan that will allow gradual transition into this larger
AS number space.
4.2 Address Consumption
It is also possible to track the total amount of address space
advertised within the BGP routing table. At the start of 2001 the
routing table encompassed 1,081,131,733 addresses, or some 25.17% of
the total IPv4 address space, or 25.4% of the usable unicast public
address space. By September 2001 this has growth to 1,123,124,472
addresses, or some 26% of the IPv4 address space. This has grown
from 1,019,484,655 addresses in November 1999. However, there are a
number of /8 prefixes that are periodically announced and withdrawn
from the BGP table, and if the effects of these prefixes is removed,
a compound growth model against the previous 12 months of data of
this metric yields a best fit model of growth of 7% per year in the
total number of addresses spanned by the routing table.
Compared to the 42% growth in the number of routing advertisements,
the growth in the amount of address space advertised is far lower.
One possible explanation is that much of the growth of the Internet
in terms of growth in the number of connected devices is occurring
behind various forms of NAT gateways. In terms of solving the
perceived finite nature of the address space identified just under a
decade ago, this explanation would tend to indicate that the Internet
appears so far to have embraced the approach of using NATs,
irrespective of their various perceived functional shortcomings. [9]
This explanation also supports the observation of smaller address
fragments supporting distinct policies in the BGP table, as such
small address blocks may encompass arbitrarily large networks located
behind one or more NAT gateways. There are alternative explanations
of this difference between the growth of the table and the growth of
address space, including a trend towards discrete exterior routing
policies being applied to finer address blocks.
4.3 Granularity of Table Entries
The intent of CIDR aggregation was to support the use of large
aggregate address announcements in the BGP routing table. To confirm
whether this is still the case the average span of each BGP
announcement has been tracked for the past 12 months. The data
indicates a decline in the average span of a BGP advertisement from
16,000 individual addresses in November 1999 to 12,100 in December
2000. As of September 2001 this span has been further reduced to an
average 10,700 individual addresses per routing entry. This
corresponds to an increase in the average prefix length from /18.03
to /18.44 by December 2000 and a /18.6 by September 2001. Separate
observations of the average prefix length used to route traffic in
operation networks in late 2000 indicate an average length of 18.1
[11]. This trend towards finer-grained entries in the routing table
is potentially cause for concern, as it implies the increasing spread
of traffic over greater numbers of increasingly smaller forwarding
table entries. This, in turn, has implications for the design of
high speed core routers, particularly when extensive use is made of a
small number of very high speed cached forwarding entries within the
switching subsystem of a router's design.
A similar observation can be made regarding the number of addresses
advertised per AS. In December 1999 each AS advertised an average of
161,900 addresses (equivalent to a prefix length /14.69, and in
January 2001 this average has fallen to 115,800 addresses, an
equivalent prefix length of /15.18.
This points to increasingly finer levels of routing detail being
announced into the global routing domain. This, in turn, supports
the observation that the efficiencies of hierarchical routing
structures are no longer being fully realized within the deployed
Internet. Instead, increasingly finer levels of routing detail are
being announced globally in the BGP tables. The most likely cause of
this trend of finer levels of routing granularity is an increasingly
dense interconnection mesh, where more networks are moving from a
single-homed connection with hierarchical addressing and routing into
multi-homed connections without any hierarchical structure. The spur
for this increasingly dense connectivity mesh in the Internet may
well be the declining unit costs of communications bearer services
coupled with a common perception that richer sets of adjacencies
yields greater levels of service resilience.
4.4 Prefix Length Distribution
In addition to looking at the average prefix length, the analysis of
the BGP table also includes an examination of the number of
advertisements of each prefix length.
An extensive program commenced in the mid-nineties to move away from
intense use of the Class C space and to encourage providers to
advertise larger address blocks, as part of the CIDR effort. This
has been reinforced by the address registries who have used provider
allocation blocks that correspond to a prefix length of /19 and, more
recently, /20.
These measures were introduced in the mid-90's when there were some
20,000 - 30,000 entries in the BGP table. Some six years later in
April 2001 it is interesting to note that of the 108,000 entries in
the routing table, some 59,000 entries have a /24 prefix. In
absolute terms the /24 prefix set is the fastest growing set in the
BGP routing table. The routing entries of these smaller address
blocks also show a much higher level of change on an hourly basis.
While a large number of BGP routing points perform route flap
damping, nevertheless there is still a very high level of
announcements and withdrawals of these entries in this particular
area of the routing table when viewed using a perspective of route
updates per prefix length. Given that the numbers of these small
prefixes are growing rapidly, there is cause for some concern that
the total level of BGP flux, in terms of the number of announcements
and withdrawals per second may be increasing, despite the pressures
from flap damping. This concern is coupled with the observation
that, in terms of BGP stability under scaling pressure, it is not the
absolute size of the BGP table that is of prime importance, but the
rate of dynamic path re-computations that occur in the wake of
announcements and withdrawals. Withdrawals are of particular concern
due to the number of transient intermediate states that the BGP
distance vector algorithm explores in processing a withdrawal.
Current experimental observations indicate a typical convergence time
of some 2 minutes to propagate a route withdrawal across the BGP
domain. [10]
An increase in the density of the BGP mesh, coupled with an increase
in the rate of such dynamic changes, does have serious implications
in maintaining the overall stability of the BGP system as it
continues to grow. The registry allocation policies also have had
some impact on the routing table prefix distribution. The original
registry practice was to use a minimum allocation unit of a /19, and
the 10,000 prefix entries in the /17 to /19 range are a consequence
of this policy decision. More recently, the allocation policy now
allows for a minimum allocation unit of a /20 prefix, and the /20
prefix is used by some 4,300 entries as of January 2001, and in
relative terms is one of the fastest growing prefix sets. The number
of entries corresponding to very small address blocks (smaller than a
/24), while small in number as a proportion of the total BGP routing
table, is the fastest growing in relative terms. The number of /25
through /32 prefixes in the routing table is growing faster, in terms
of percentage change, than any other area of the routing table. If
prefix length filtering were in widespread use, the practice of
announcing a very small address block with a distinct routing policy
would have no particular beneficial outcome, as the address block
would not be passed throughout the global BGP routing domain and the
propagation of the associated policy would be limited in scope. The
growth of the number of these small address blocks, and the diversity
of AS paths associated with these routing entries, points to a
relatively limited use of prefix length filtering in today's
Internet. In the absence of any corrective pressure in the form of
widespread adoption of prefix length filtering, the very rapid growth
of global announcements of very small address blocks is likely to
continue. In percentage terms, the set of prefixes spanning /25 to
/32 show the largest growth rates.
Huston Informational [Page 10]
4.5 Aggregation and Holes
With the CIDR routing structure it is possible to advertise a more
specific prefix of an existing aggregate. The purpose of this more
specific announcement is to punch a 'hole' in the policy of the
larger aggregate announcement, creating a different policy for the
specifically referenced address prefix.
Another use of this mechanism is to perform a rudimentary form of
load balancing and mutual backup for multi-homed networks. In this
model a network may advertise the same aggregate advertisement along
each connection, but then advertise a set of specific advertisements
for each connection, altering the specific advertisements such that
the load on each connection is approximately balanced. The two forms
of holes can be readily discerned in the routing table - while the
approach of policy differentiation uses an AS path that is different
from the aggregate advertisement, the load balancing and mutual
backup configuration uses the same As path for both the aggregate and
the specific advertisements. While it is difficult to understand
whether the use of such more specific advertisements was intended to
be an exception to a more general rule or not within the original
intent of CIDR deployment, there appears to be very widespread use of
this mechanism within the routing table. Some 59,000 advertisements,
or 55% of the total number of routing table entries, are being used
to punch policy holes in existing aggregate announcements. Of these
the overall majority of some 42,000 routes use distinct AS paths, so
that it does appear that this is evidence of finer levels of
granularity of connection policy in a densely interconnected space.
While long term data is not available for the relative level of such
advertisements as a proportion of the full routing table, the growth
level does strongly indicate that policy differentiation at a fine
level within existing provider aggregates is a significant driver of
overall table growth.
5. Current State of inter-AS routing in the Internet
The resumption of compound growth trends within the BGP table, and
the associated aspects of finer granularity of routing entries within
the table form adequate grounds for consideration of potential
refinements to the Internet's exterior routing protocols and
potential refinements to current operating practices of inter-AS
connectivity. With the exception of the 16 bit AS number space,
there is no particular finite limit to any aspect of the BGP table.
The motivation for such activity is that a long term pattern of
continued growth at current rates may once again pose a potential
condition where the capacity of the available processors may be
exceeded by some aspect of the Internet routing table.
5.1 A denser interconnectivity mesh
The decreasing unit cost of communications bearers in many part of
the Internet is creating a rapidly expanding market in exchange
points and other forms of inter-provider peering. A model of
extensive interconnection at the edges of the Internet is rapidly
supplanting the deployment model of a single-homed network with a
single upstream provider. The underlying deployment model of CIDR
was that of a single-homed network, allowing for a strict hierarchy
of supply providers. The business imperatives driving this denser
mesh of interconnection in the Internet are substantial, and the
casualty in this case is the CIDR-induced dampened growth of the BGP
routing table.
5.2 Multi-Homed small networks and service resiliency
It would appear that one of the major drivers of the recent growth of
the BGP table is that of small networks, advertised as a /24 prefix
entry in the routing table, multi-homing with a number of peers and
upstream providers. In the appropriate environment where there are a
number of networks in relatively close proximity, using peer
relationships can reduce total connectivity costs, as compared to
using a single upstream service provider. Equally significantly,
multi-homing with a number of upstream providers is seen as a means
of improving the overall availability of the service. In essence,
multi-homing is seen as an acceptable substitute for upstream service
resiliency. This has a potential side effect that when multi-homing
is seen as a preferable substitute for upstream provider resiliency,
the upstream provider cannot command a price premium for proving
resiliency as an attribute of the provided service, and therefore has
little economic incentive to spend the additional money required to
engineer resiliency into the network. The actions of the network's
multi-homed clients then become self-fulfilling. One way to
characterize this behavior is that service resiliency in the Internet
is becoming the responsibility of the customer, not the service
In such an environment resiliency still exists, but rather than being
a function of the bearer or switching subsystem, resiliency is
provided through the function of the BGP routing system. The
question is not whether this is feasible or desirable in the
individual case, but whether the BGP routing system can scale
adequately to continue to undertake this role.
5.3 Traffic Engineering via Routing
Further driving this growth in the routing table is the use of
selective advertisement of smaller prefixes along different paths in
an effort to undertake traffic engineering within a multi-homed
environment. While there is considerable effort being undertaken to
develop traffic engineering tools within a single network using MPLS
as the base flow management tool, inter-provider tools to achieve
similar outcomes are considerably more complex when using such
switching techniques.
At this stage the only tool being used for inter-provider traffic
engineering is that of the BGP routing table. Such use of BGP
appears to place additional fine-grained prefixes into the routing
table. This action further exacerbates the growth and stability
pressures being placed on the BGP routing domain.
5.4 Lack of Common Operational Practices
There is considerable evidence of a lack of uniformity of operational
practices within the inter-domain routing space. This includes the
use and setting of prefix filters, the use and setting of route
damping parameters and level of verification undertaken on BGP
advertisements by both the advertiser and the recipient. There is
some extent of 'noise' in the routing table where advertisements
appear to be propagated well beyond their intended domain of
applicability, and also where withdrawals and advertisements are not
being adequately damped close to the origin of the route flap. This
diversity of operating practices also extends to policies of
accepting advertisements that are more specific advertisements of
existing provider blocks.
5.5 CIDR and Hierarchical Routing
The current growth factors at play in the BGP table are not easily
susceptible to another round of CIDR deployment pressure within the
operator community. The denser interconnectivity mesh, the
increasing use of multi-homing with smaller address prefixes, the
extension of the use of BGP to perform roles related to inter-domain
traffic engineering and the lack of common operating practices all
point to a continuation of the trend of growth in the total size of
the BGP routing table, with this growth most apparent with
advertisements of smaller address blocks, and an increasing trend for
these small advertisements to be punching a connectivity policy
'hole' in an existing provider aggregate advertisement.
It may be appropriate to consider how to operate an Internet with a
BGP routing table that has millions of small entries, rather than the
expectation of a hierarchical routing space with at most tens of
thousands of larger entries in the global routing table.
6. Future Requirements for the Exterior Routing System
It is beyond the scope of this document to define a scalable inter-
domain routing environment and associated routing protocols and
operating practices. A more modest goal is to look at the attributes
of routing systems as understood and identify those aspects of such
systems that may be applicable to the inter-domain environment as a
potential set of requirements for inter-domain routing tools.
6.1 Scalability
The overall intent is scalability of the routing environment.
Scalability can be expressed in many dimensions, including number of
discrete network layer reachability entries, number of discrete route
policy entries, level of dynamic change over a unit of time of these
entries, time to converge to a coherent view of the connectivity of
the network following changes, and so on.
The basic objective behind this expressed requirement for scalability
is that the most likely near to medium trend in the structure of the
Internet is a continuation in the pattern of dense interconnectivity
between a large number of discrete network entities, and little
impetus behind hierarchical aggregating structures. It is not an
objective to place any particular metrics on scalability within this
examination of requirements, aside from indicating that a prudent
view would encompass a scale of connectivity in the inter-domain
space that is at least two orders of magnitude larger than comparable
metrics of the current environment.
6.2 Stability and Predictability
Any routing system should behave in a stable and predictable fashion.
What is inferred from the predictability requirement is the behavior
that under identical environmental conditions the routing system
should converge to the same state. Stability implies that the
routing state should be maintained for as long as the environmental
conditions remain constant. Stability also implies a qualitative
property that minor variations in the network's state should not
cause large scale instability across the entire network while a new
stable routing state is reached. Instead, routing changes should be
propagated only as far as necessary to reach a new stable state, so
that the global requirement for stability implies some degree of
locality in the behavior of the system.
6.3 Convergence
Any routing system should have adequate convergence properties. By
adequate it is implied that within a finite time following a change
in the external environment, the routing system will have reached a
shared common description of the network's topology that accurately
describes the current state of the network and is stable. In this
case finite time implies a time limit that is bounded by some upper
limit, and this upper limit reflects the requirements of the routing
system. In the case of the Internet this convergence time is
currently of the order of hundreds of seconds as an upper bound on
convergence. This long convergence time is perceived as having a
negative impact on various applications, particularly those that are
time critical. A more useful upper bound for convergence is of the
order of seconds or lower if it is desired to support a broad range
of application classes.
It is not a requirement to be able to undertake full convergence of
the inter-domain routing system in the sub-second timescale.
6.4 Routing Overhead
The greater the amount of information passed within the routing
system, and the greater the frequency of such information exchanges,
the greater the level of expectation that the routing system can
maintain an accurate view of the connectivity of the network.
Equally, the greater the amount of information passed within the
routing system, and the higher the frequency of information exchange,
the higher the level of overhead consumed by operation of the routing
system. There is an element of design compromise in a routing system
to pass enough information across the system to allow each routing
element to have adequate local information to reach a coherent local
view of the network, yet ensure that the total routing overhead is
low.
7. Architectural approaches to a scalable Exterior Routing Protocol
This document does not attempt to define an inter-domain routing
protocol that possess all the attributes as listed above, but a
number of architectural considerations can be identified that would
form an integral part of the protocol design process.
7.1 Policy opaqueness vs. policy transparency
The two major approaches to routing protocols are distance vector and
link state.
In the distance vector protocol a routing node gathers information
from its neighbors, applies local policy to this information and then
distributes this updated information to its neighbors. In this model
the nature of the local policy applied to the routing information is
not necessarily visible to the node's neighbors, and the process of
converting received route advertisements into advertised route
advertisements uses a local policy process whose policy rules are not
visible externally. This scenario can be described as 'policy
opaque'. The side effect of such an environment is that a third
party cannot remotely compute which routes a network may accept and
which may be re-advertised to each neighbor.
In link state protocols a routing node effectively broadcasts its
local adjacencies, and the policies it has with respect to these
adjacencies, to all nodes within the link state domain. Every node
can perform an identical computation upon this set of adjacencies and
associated policies in order to compute the local forwarding table.
The essential attribute of this environment is that the routing node
has to announce its routing policies, in order to allow a remote node
to compute which routes will be accepted from which neighbor, and
which routes will be advertised to each neighbor and what, if any,
attributes are placed on the advertisement. Within an interior
routing domain the local policies are in effect metrics of each link
and these polices can be announced within the routing domain without
any consequent impact.
In the exterior routing domain it is not the case that
interconnection policies between networks are always fully
transparent. Various permutations of supplier / customer
relationships and peering relationships have associated policy
qualifications that are not publicly announced for business
competitive reasons. The current diversity of interconnection
arrangements appears to be predicated on policy opaqueness, and to
mandate a change to a model of open interconnection policies may be
contrary to operational business imperatives.
An inter-domain routing tool should be able to support models of
interconnection where the policy associated with the interconnection
is not visible to any third party. If the architectural choice is a
constrained one between distance vector and link state, then this
consideration would appear to favor the continued use of a distance
vector approach to inter-domain routing. This choice, in turn, has
implications on the convergence properties and stability of the
inter-domain routing environment. If there is a broader spectrum of
choice, the considerations of policy-opaqueness would still apply.
7.2 The number of routing objects
The current issues with the trend behaviors of the BGP space can be
coarsely summarized as the growth in the number of distinct routing
objects, the increased level of dynamic behaviors of these objects
(in the form of announcements and withdrawals).
This entails evaluating possible measures that can address the growth
rate in the number of objects in the inter-domain routing table, and
separately examining measures that can reduce the level of dynamic
change in the routing table. The current routing architecture
defines a basic unit of a route object as an originating AS number
and an address prefix.
In looking at the growth rate in the number of route objects, the
salient observation is that the number of route objects is the
byproduct of the density of the interconnection mesh and the number
of discrete points where policy is imposed of route objects. One
approach to reduce the growth in the number of objects is to allow
each object to describe larger segments of infrastructure. Such an
approach could use a single route object to describe a set of address
prefixes, or a collection of ASs, or a combination of the two. The
most direct form of extension would be to preserve the assumption
that each routing object represents an indivisible policy entity.
However, given that one of the drivers of the increasing number of
route objects is a proliferation of discrete route objects, it is not
immediately apparent that this form of aggregation will prove capable
in addressing the growth in the number of route objects.
If single route objects are to be used that encompass a set of
address prefixes and a collection of ASs, then it appears necessary
to define additional attributes within the route object to further
qualify the policies associated with the object in terms of specific
prefixes, specific ASs and specific policy semantics that may be
considered as policy exceptions to the overall aggregate
Another approach to reduce the number of route objects is to reduce
the scope of advertisement of each routing object, allowing the
object to be removed and proxy aggregated into some larger object
once the logical scope of the object has been reached. This approach
would entail the addition of route attributes that could be used to
define the circumstances where a specific route object would be
subsumed by an aggregate route object without impacting the policy
objectives associated with the original set of advertisements.
7.3 Inter-domain Traffic Engineering
Attempting to place greater levels of detail into route objects is
intended to address the dual role of the current BGP system as both
an inter-domain connectivity maintenance protocol and as an implicit
traffic engineering tool.
In the current environment, advertisement of more specific prefixes
with unique policy but with the same origin AS is often intended to
create a traffic engineering response, where incoming traffic to an
AS may be balanced across multiple paths. The outcome is that the
control of the relative profile of load is placed with the
originating AS. The way this is achieved is by using limited
knowledge of the remote AS's route selection policy to explicitly
limit the number of egress choices available to a remote AS. The
most common route selection policy is the preference for more
specific prefixes over larger address blocks. By advertising
specific prefixes along specific neighbor AS connections with
specific route attributes, traffic destined to these addresses is
passed through the selected transit paths. This limitation of choice
allows the originating AS to override the potential policy choices of
all other ASs, imposing its traffic import policies at a higher level
than the remote AS's egress policies.
An alternative approach is the use of a class of traffic engineering
attributes that are attached to an aggregate route object. The
intent of such attributes is to direct each remote AS to respond to
the route object in a manner that equates to the current response to
more specific advertisements, but without the need to advertise
specific prefix route objects. However, even this approach uses
route objects to communicate traffic engineering policy, and the same
risk remains that the route table is used to carry fine-detailed
traffic path policies.
An alternative direction is to separate the functions of connectivity
maintenance and traffic engineering, using the routing protocol to
identify a number of viable paths from a source AS to a destination
AS, and use a distinct collection of traffic engineering tools to
allow a traffic source AS to make egress path selections that match
the desired traffic service profile for the traffic.
There is one critical difference between traffic engineering
approaches as used in intra-domain environments and the current
inter-domain operating practices. Whereas the intra-domain
environment uses the ingress network element to make the appropriate
path choice to the egress point, the inter domain traffic engineering
has the opposite intent, where a downstream AS (or egress point) is
attempting to influence the path choice of an upstream AS (or ingress
point). If explicit traffic engineering were undertaken within the
inter-domain space, it is highly likely that the current structure
would be altered. Instead of the downstream element attempting to
constrain the path choices of an upstream element, a probable
approach is the downstream element placing a number of advisory
constraints on the upstream elements, and the upstream elements using
a combination of these advisory constraints, dynamic information
relating to path service characteristics and local policies to make
an egress choice.
From the perspective of the inter-domain routing environment, such
measures offer the potential to remove the advertisement of specific
routes for traffic engineering purposes. However, there is a need to
adding traffic engineering information into advertised route blocks,
requiring the definition of the syntax and semantics of traffic
engineering attributes that can be attached to route objects.
7.4 Hierarchical Routing Models
The CIDR routing model assumed a hierarchy of providers, where at
each level in the hierarchy the routing policies and address space of
networks at the lower level of hierarchy were subsumed by the next
level up (or 'upstream') provider. The connectivity policy assumed
by this model is also a hierarchical model, where horizontal
connections within a single level of the hierarchy are not visible
beyond the networks of the two parties.
A number of external factors are increasing the density of
interconnection including decreasing unit costs of communications
services and the increasing use of exchange points to augment point-
to-point connectivity models with point-to-multi-point facilities.
The outcome of these external factors is a significant reduction in
the hierarchical nature of the inter-domain space. Such a trend can
be viewed with concern given the common approach of using hierarchies
as a tool for scaling routing systems. BGP falls within this
approach, and relies on hierarchies in the address space to contain
the number of independently routing objects. The outcomes of this
characteristic of the Internet in terms of the routing space is the
increasing number of distinct route policies that are associated with
each multi-homed network within the Internet.
One way to limit the proliferation of such policies across the entire
inter-domain space is to associate attributes to such advertisements
that specify the conditions whereby a remote transit AS may proxy-
aggregate this route object with other route objects.
7.5 Extend or Replace BGP
A final consideration is to consider whether these requirements can
best be met by an approach of a set of upward-compatible extensions
to BGP, or by a replacement to BGP. No recommendation is made here,
and this is a topic requiring further investigation.
The general approach in extending BGP appears to lie in increasing
the number of supported transitive route attributes, allowing the
route originator greater control in specifying the scope of
propagation of the route and the intended outcome in terms of policy
and traffic engineering. It may also be necessary to allow BGP
sessions to negotiate additional functionality intended to improve
the convergence behavior of the protocol. Whether such changes can
produce a scalable and useful outcome in terms of inter-domain
routing remains, at this stage, an open question.
An alternative approach is that of a replacement protocol, and such
an approach may well be based on the adoption of a link-state
behavior. The issues of policy opaqueness and link-state protocols
have been described above. The other major issue with such an
approach is the need to limit the extent of link state flooding,
where the inter-domain space would need some further levels of
imposed structure similar to intra-domain areas. Such structure may
well imply the need for an additional set of operator inter-
relationships such as mutual transit, and this may prove challenging
to adapt to existing practices.
The potential sets of actions include more than extend or replace the
BGP protocol. A third approach is to continue to use BGP as the
basic means of propagating route objects and their associated AS
paths and other attributes, and use one or more overlay protocols to
support inter-domain traffic engineering and other forms of inter-
domain policy negotiation. This approach would appear to offer a
means of transition for the large installed base currently using BGP4
as their inter-domain routing protocol, placing additional
functionality in the overlay protocols while leaving the basic
functionality of BGP4 intact. The resultant inter-dependencies
between BGP and the overlay protocols would require very careful
attention, as this would be the most critical aspect of such an
8. Directions for Further Activity
While there may exist short term actions based on providing various
incentives for network operators to remove redundant or inefficiently
grouped entries from the BGP routing table, such actions are short
term palliative measures, and will not provide long term answers to
the need to a scalable inter-domain routing protocol.
One potential short term protocol refinement is to allow a set of
grouped advertisements to be aggregated into a single route
advertisement. This form of proxy aggregation would take a set of
bit-wise aligned routing entries with matching route attributes, and
under certain well identified circumstances, aggregate these routing
entries into a single re-advertised aggregate routing entry. This
technique removes information from the routing system, and some care
must be taken to define a set of proxy aggregation conditions that do
not materially alter the flow of traffic, or the ability of
originating ASes to announce routing policy.
A further refinement to this approach is to consider the definition
of the syntax and semantics of a number of additional route
attributes. Such attributes could define the extent to which
specific route advertisements should be propagated in the inter-
domain space, allowing the advertisement to be subsumed by a larger
aggregate advertisement at the boundary of this domain. This could
be used to form part of the preconditions of automated proxy
aggregation of specific routes, and also limit the extent to which
announcement and withdrawals are propagated across the routing
It is unclear that such measures would result in substantial longer
term changes to the scaling and convergence properties of BGP4.
Taking the requirement set enumerated in section 6 of this document,
one approach to the longer term requirements may be to preserve a
number of attributes of the current BGP protocol, while refine other
aspects of the protocol to improve its scaling and convergence
properties. A minimal set of alterations could retain the Autonomous
System concept to allow for boundaries of information summarization,
as well as retaining the approach of associating each prefix
advertisement with an originating AS. The concept of policy
opaqueness would also be retained in such an approach, implying that
each AS accepts a set of route advertisements, applies local policy
constraints, and re-advertises those advertisements permitted by the
local policy constraints. It could be feasible to consider
alterations to the distance vector path selection algorithm,
particularly as it relates to intermediate states during processing
of a route withdrawal. It is also feasible to consider the use of
compound route attributes, allowing a route object to include an
aggregate route, and a number of specifics of the aggregate route,
and attach attributes that may apply to the aggregate or a specific
address prefix. Such route attributes could be used to support
multi-homing and inter-domain traffic engineering mechanisms. The
overall intent of this approach is to address the major requirements
in the inter-domain routing space without using an increasing set of
globally propagated specific route objects.
A potential applied research topic is to consider the feasibility of
de-coupling the requirements of inter-domain connectivity management
with the applications of policy constraints and the issues of sender-
and/or receiver-managed traffic engineering requirements. Such an
approach may use a link-state protocol as a means of maintaining a
consistent view of the topology of inter-domain network, and then use
some form of overlay protocol to negotiate policy requirements of
each AS, and use a further overlay to support inter-domain traffic
engineering requirements. The underlying assumption of such an
approach is that by dividing up the functional role of inter-domain
routing into distinct components each component will have superior
scaling and convergence properties which in turn to result in
superior properties for the entire routing system. Obviously, this
assumption requires some testing.
Research topics with potential longer term application include the
approach of drawing a distinction between a network's identity, a
network's location relative to other networks, and a feasible path
between a source and destination network that satisfies various
policy and traffic engineering constraints. Again the intent of such
an approach would be to divide the current routing function into a
number of distinct scalable components.
Any adopted inter-domain routing protocol needs to be secure against
disruption. Disruption comes from two primary sources:
- Accidental misconfiguration
- Malicious attacks
Given past experience with routing protocols, both can be significant
sources of harm.
Given that it is not reasonable to guarantee the security of all the
routers involved in the global Internet inter-domain routing system,
there is also every reason to believe that malicious attacks may come
from peer routers, in addition to coming from external sources.
A protocol design should therefore consider how to minimize the
damage to the overall routing computation that can be caused by a
single or small set of misbehaving routers.
The routing system itself needs to be resilient against accidental or
malicious advertisements of a route object by a route server not
entitled to generate such an advertisement. This implies several
things, including the need for cryptographic validation of
announcements, cryptographic protection of various critical routing
messages and an accurate and trusted database of routing assignments
via which authorization can be checked.
[1] Bradner, S., "The Internet Standards Process -- Revision 3",
BCP 9, RFC 2026, October 1996.
[2] Clark, D., Chapin, L., Cerf, V., Braden, R. and R. Hobby,
"Towards the Future Internet Architecture", RFC 1287, December
[3] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6)
Specification, RFC 2460, December 1998.
[4] Srisuresh, P. and K. Egevang, "Traditional IP Network Address
Translator (Traditional NAT)", RFC 3022, January 2001.
[5] Fuller, V., Li, T., Yu, J. and K. Varadhan, "Classless Inter-
Domain Routing (CIDR): an Address Assignment and Aggregation
Strategy", RFC 1519, September 1993.
[6] Huston, G., "The BGP Routing Table", The Internet Protocol
Journal, vol. 4, No. 1, March 2001.
[7] Rekhter, Y. and T. Li, "A Border Gateway Protocol 4 (BGP-4)",
RFC 1771, March 1995.
[8] Vohara, Q. and E. Chen, "BGP support for four-octet AS number
space", Work in Progress.
[9] Hain, T., "Architectural Implications of NAT", RFC 2993,
[10] Labovitz, C., Ahuja, A., Bose, A. and J. Jahanian, "Delayed
Internet Routing Convergence", Proceedings ACM SIGCOMM 2000,
[11] Lothberg, P., personal communication, December 2000.
This document is the outcome of a collaborative effort of the IAB,
and the editor acknowledges the contributions of the members of the
IAB in the preparation of the document. The contributions of John
Leslie, Thomas Narten and Abha Ahuja in reviewing this document are
also acknowledged.
12. Author
Internet Architecture Board
Email: iab@ietf.org
Geoff Huston
5/490 Northbourne Ave
Dickson ACT 2602
EMail: gih@telstra.net
13. Full Copyright Statement
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Funding for the RFC Editor function is currently provided by the
Internet Society.


Now that our fellow Americans have elected a new President . . .
Bruce Katz wrote in The Metro Revolution that the federal government has been withdrawing support for cities for decades. Well, it looks like we are in for at least four more years of eroding support for cities. So we are on our own – we need to regroup following this election and roll up our sleeves.
We have yet to see what a President Trump has planned for cities, but those of us who are working to make our cities more livable need to be more organized than ever. We have heard Donald Trump claim that he intends to "make America great again" – and we know that most of America's people, resources, challenges, and opportunities are in cities. We the People live, work, worship, and play in Metro America!
Let's be an active voice and movement to give substance and power to America's claim to greatness -- and let's hold our President and the entire Congress to that claim. And let's hold our governors, state legislators, mayors, and city councils accountable -- This is not the time to cave in to discouragement!
Our cities of the laboratory of the Urban Century -- let's make cities livable for humanity and the planet!
But problems are opportunities wrapped in a challenge. This alleyway is an opportunity to think creatively about what the space in the middle of a block could be like -- functional and beautiful! Who says an alley has to be ugly, smelly, or boring?
One property owner on the block has done a great job renovating a building with beautiful space that is now ready for business -- but to make this space more attractive to new business owners, we need creative ideas about how this alleyway could be transformed into a shared space for people, cars, and dumpsters. The middle of a mixed use urban block should be designed as much for an outdoor patio dining area in the back of a restaurant as for efficient management of traffic, parking, and garbage. It should also be a welcome sight for residents looking out their back windows.
Baltimore is famous for the attachment people feel to the places, character, and communities of its "Smalltimore" neighborhoods. The spectacularly successful Star Spangled Spectacular bicentennial celebration is a reminder of the historic legacy of Baltimore's old port village neighborhoods -- Jonestown, Fells Point, Federal Hill, Oldtown, Canton -- and perhaps imaging ways to recapture and refurbish their historic legacy as incubators of Baltimore's unique cultural legacy, funky vibe, and economic productivity. Let's think about how a vivid sense of historic place enhances the social and economic value of cool, trendy rehabs and condos.
While Homicide: Life on the Streets and The Wire remain sticky brand images, the old port villages are a far richer and intriguing window into the historic diversity and dynamism of Baltimore. Old Jonestown, originally stretching up the east bank of the Jones Falls from the harbor to the (invisible underground) river bend, is now chopped up into distinct neighborhoods including Little Italy, Albemarle Square, Pleasant View Gardens, and Harbor East as well as "invisible" drive-through areas that everyone has seen, but no one knows. (Think of the one-way Pratt and Lombard corridors between President Street and Broadway: How many times have you driven on these streets? How many times have you actually stopped or noticed who or what was there?) Although some of the original historic footprint of streetscape and structures remains -- notably in Little Italy and a few scattered sites -- most of the old built environment was destroyed to make room for "new" neighborhoods. Admittedly, the redeveloped properties were not necessarily prize real estate or historic gems; few wax nostalgic for the Allied Chemical plant and most eagerly await the gleaming towers and greenspaces replacing it. But even the newest neighborhoods can be enriched by their connection to Historic Old Jonestown, both as a source of community identity and pride as well as a destination for Baltimore visitors.
The bicentennial celebration reminds us of the the ongoing historic legacy of Baltimore's people, communities, places, and stories. As important as Fort McHenry is, Historic Old Jonestown represents what the Fort was built to protect and preserve. You can start with a visit to the Historic Jonestown website and spend an afternoon following the Heritage Walk that connects the remaining historic sites of Old Jonestown. Whether your family has been in Baltimore since 1661 or just arrived in 2014, you are now part of its history and creating its future.


text:
Q: Twilio Conversations: How to create conversation with similar participants without running into 409? Similar to this question, I am attempting to do the following:

*

*I have a Twilio conversation C1 with participants P1, P2

*I want to create a new conversation with participants P1, P2, P3
As soon as I add P2 to the new convo, I will get the famous "Group MMS with given participant list already exists as Conversation" error and won't ever reach P3.
I know there is an accepted answer on the link I put, but this is not a scalable solution. Here's why:
I am building a solution where many conversations will be generated simultaneously due to user interactions with my applications. The accepted solution was to add P4 first to the conversation and then remove P4 after I add P3 in order to have a unique conversation. Suppose however that multiple conversations are being generated simultaneously. If one has P4 added already and is yet to attempt to add P1, then the second someone else tries to add the P4 to the conversation, we would fail there.
Is there another solution to this problem that can actually scale? Would love if there was a way to add all the final participants at once and only then would Twilio check to see if a conversation exists with those participants.

redpajama_set_name: RedPajamaStackExchange


text:
Q: Sending values from Javascript to Blazor doesn't work (Two-data-binding) In my java script I'm sending the Lan/Long of my map to blazor. I can see the the the longitude and latitude changes on the browser, but I want to pass them to my blazor method to do some processing. the values returned always 0.
Here is my have script method:
function GetCircle(e){
    r = document.getElementById("InputRadius").value;

    if (circle !== null) {
        map.removeLayer(circle);

    }
        circle = new  L.circle([ Lat,Long],{radius:r});
    map.addLayer(circle);
    circle.bindPopup( "
 Radius is : " + r +" Meter"

    ).openPopup();
    document.getElementById("Lat").value = Lat; //send this to blazor
    document.getElementById("Long").value = Long; // send this to blazor

}

As you can see from the above code, when the user click on the map I'm getting the long/lat and then send them to blazor.
My razor page:
I have the following inputs which I'm using them to store the data inside them then pass the data to blazor method in the 'code' section

<input type="text" @bind="Lat" id="Lat" name="Lat"   >
<input type="text" @bind="Long" id="Long" name = "Long" >

@code {

   int InputRadius;
  double Long;
  double Lat;
  string date_selected;
  string time_selected;

    public async Task GetTgas()
        {
         AllTags = await Task.Run(() => tagsService.Map(   InputRadius, Long,Lat,date_selected,time_selected));

        }

 public async Task GetCircle()

    {
        await JSRuntime.InvokeVoidAsync("GetCircle");

    }

}

I can see the Lan/Long in my view perfectly when I'm clicking on GetCircle, which means that they passed from JS to blazor page successfully, but when doing the GetTags function they don't pass to my blazor method.
Any help would be appriciated!

A: Your GetCircle method should be like this, need to send .net object reference to javascript function
await JS.InvokeVoidAsync("GetCircle", DotNetObjectReference.Create(this));

And your GetTags function should be like this, should be invokable from javascript
[JSInvokable]
public async Task GetTags(double lati, double longi)
   {
      AllTags = await Task.Run(() => tagsService.Map(InputRadius, longi,lati,date_selected,time_selected));
   }

Your javascript function should be like this
function GetCircle(dotNetHelper){
    r = document.getElementById("InputRadius").value;

    if (circle !== null) {
        map.removeLayer(circle);

    }
        circle = new  L.circle([ Lat,Long],{radius:r});
    map.addLayer(circle);
    circle.bindPopup( "
 Radius is : " + r +" Meter"

    ).openPopup();

    //  send this to blazor
    dotNetHelper.invokeMethodAsync('GetTags', Lat, Long);
}


text:
Evernote's New Privacy Policy Will Let Employees Spy on You
By Don Reisinger 2016-12-15T21:52:00Z
Evernote wants to use machine learning to improve its service, but it might also pave the way for employees to spy on your data.
Editors' Note: Evernote has since backed off changing its privacy policy; you can read the report on Evernote's decision here. This article was originally published on Dec. 14. We updated it on Dec. 15 to add Evernote CEO Chris O'Neill's comments on the privacy policy.
If you're an Evernote user who cares about keeping your notes away from prying eyes, you might not be happy with a change the service is planning to make to its privacy policy. Evernote announced on Dec. 14 that it's updating its policy in January to allow employees to look at user account content.
Evernote says it's making this change on Jan. 23, 2017, in the name of improving its service. Specifically, the company wants to boost the performance of its machine learning tool and it apparently need human eyes to make sure that tool is working properly.
"The latest update to the Privacy Policy allows some Evernote employees to exercise oversight of machine learning technologies applied to account content...for the purposes of developing and improving the Evernote service," Evernote said in a statement. "This is primarily to make sure that our machine learning technologies are working correctly, in order to surface the most relevant content and features to you."
MORE: 13 Security and Privacy Tips for the Truly Paranoid
In a follow-up blog post today (Dec. 15), Evernote CEO Chris O'Neill clarified that "Evernote employees do not view the content of user notes except in very limited cases... The number of employees who are authorized to view this content is extremely limited by our existing policies, and I am personally involved in defining them."
O'Neill didn't back away from the proposed privacy policy changes, saying that he believes machine learning will be critical to improving Evernote as "Evernote data scientists need to do spot checks as they develop the technology."
"If you choose to participate in these experimental features, you'll enjoy a more personalized experience," O'Neill wrote. "Select Evernote employees may see random content to ensure the features are working properly but they won't know who it belongs to. They'll only see the snippet they're checking. Not only that, but if a machine identifies any personal information, it will mask it from the employee."
While Evernote didn't initially specify all of the data its employees might be able to see, the service — which allows users to create notes and sync them across devices — has caught some flak from users worried about their privacy. Those users have said that notes are private and shouldn't be accessible to anyone. In turn, many users have taken to Twitter, Reddit, and other online forums to say they're leaving Evernote for another service.
Evernote might have had a sense that its users wouldn't like what it had to announce and delivered an FAQ. Many of those questions try to address concerns, with one saying, "I really don't like this change and don't want Evernote employees to see my notes. What are my options?"
Evernote's answer to that question might not assuage fears. The company said it will offer an option in its account settings to turn off its ability to access user data. But even that opt-out is limited, as there appears to be a way for employees to still access user data after the opt-out has been turned on.
"If you do opt out, however, you may not be able to get the most out of your Evernote experience," Evernote said. "And please note that you cannot opt out of employees looking at your content for other reasons stated in our Privacy Policy." Those reasons include Evernote complying with court orders and protecting against spam and malware.
To further bolster its argument, Evernote said that it's keeping the number of employees who can see user data "as small as possible." The company added that it won't sell user data or serve ads based on the note content, but did say it could "use your information to notify you about features we believe will help you get the most out of Evernote."
If you're among the Evernote users not pleased with this change, you could consider alternative note-taking apps. And our sister site Laptop has instructions on how to export your notes from Evernote.
From Laptop: Encrypt Text Notes in Evernote
The Best iOS Apps You're Not Using (But Should Be)
Top Mobile Privacy and Security Apps
Epic fail: Critical Windows 10 security update failing to install
Google could launch two Pixel 4a models this year — including one with 5G
Shocking: Facebook does the right thing for once
Facebook slashes Oculus Go price to $149 — forever
Best gaming monitors of 2020

redpajama_set_name: RedPajamaCommonCrawl


We rate and review the best VPN services to help you protect your privacy online. To keep this site free, we get paid when you click one of our links and buy a VPN.
Our VPN review ratings are impartial. The scores and order of our top lists may be influenced by commercial factors, such as conversion rates and popularity, but always take into account how well a VPN performs for each specific purpose, such as use on mobile or in the US.
Need a VPN for privacy? We got you covered. A VPN for the US? That too. Yep. Our testing means we know VPN services inside and out. Whether you need a VPN for security, traveling abroad or for Android, we have a Top 10 list for you.
We cut through the techno-waffle around VPNs. We want everyone to know that using a VPN is as easy as checking your email. But if you want to be able to tell the difference between your PPTP and L2TP or why latency is important when assessing VPN performance, we can help with that too.


text:
//
//  DanmuSocket.m
//  DouyuTVDammu
//
//  Created by LuChen on 16/3/3.
//  Copyright © 2016年 Bad Chen. All rights reserved.
//

#import "DanmuSocket.h"

static DanmuSocket *instance = nil;
@implementation DanmuSocket

+ (id)sharedInstance{
    @synchronized(self) {
        if (instance == nil) {

            instance = [[DanmuSocket alloc]init];
        }
    }
    return instance;
}

- (void)setServerConfig{
    NSString *ip = @"danmu.douyutv.com";
    NSArray *sevArray = @[@{@"ip":ip,@"port":@"12061"},
                        @{@"ip":ip,@"port":@"12062"},
                        @{@"ip":ip,@"port":@"8601"},
                        @{@"ip":ip,@"port":@"8602"},
                        ];
    self.server = @[].mutableCopy;
    for (int i = 0; i < sevArray.count; i++) {
        ServerModel *model = [ServerModel new];
        NSDictionary *sevCfg = sevArray[i];
        model.ip = sevCfg[@"ip"];
        model.port = [sevCfg[@"port"] intValue];
        [self.server addObject:model];
    }

}

- (void)connectSocketHost{
    self.socket = [[AsyncSocket alloc] initWithDelegate:self];

    NSError *error = nil;
    NSString *ip = @"openbarrage.douyutv.com";
    UInt16 port = 8601;

    [self.socket connectToHost:ip onPort:port withTimeout:30 error:&error];
}

//心跳包
- (void)longConnectToSocket{
    //keep live 所发送的信息
    /*
     心跳包内容
     type@=mrkl/
     */
    NSString *keepLive = @"type@=mrkl/";
    NSData *postKLData = [self packToData:keepLive];
    [self.socket writeData:postKLData withTimeout:30 tag:1];

}

#pragma marl --回调方法
//连接成功
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port{
    NSLog(@"---弹幕服务器连接成功---");

    /*
     游客登陆信息
     type@=loginreq/username@=visitor13227520/password@=1234567890123456/roomid@=213116/
     username:
     roomid:
     加入弹幕组
     type@=joingroup/rid@=213116/gid@=1/
     */
    NSString *loginreq = [NSString stringWithFormat:@"type@=loginreq/roomid@=%@/", self.room];
    self.isFirstDate = YES;
    [self.socket writeData:[self packToData:loginreq] withTimeout:30 tag:1];

}
//断开链接
- (void)onSocketDidDisconnect:(AsyncSocket *)sock{
    NSLog(@"----弹幕服务器断开----");
    self.combieData = nil;
}

//接受数据 从父类继承
//- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
//}

- (void)startKLTimer{
    self.connectTimer = [NSTimer scheduledTimerWithTimeInterval:20 target:self selector:@selector(longConnectToSocket) userInfo:nil repeats:YES];
    [self.connectTimer fire];
}

@end

redpajama_set_name: RedPajamaGithub


I have a pretty good relationship with my mailman. He drops packages off about three times a week. Since I work from home I am usually at home and answer the door. He often will wait for me to answer and we will strike up a conversation. It was during one of these chats that he told me postal workers love to see envelopes decked out in art! Ever since I have been stamping, painting, and drawing on my envelopes.
One of my favorite techniques is using the gel press with paint and a Rita Barakat art foamie stamp. To keep a nice clean area for the address I use washi tape to mask off the spot to write. I use three strips of the standard size tape.
Here is how to create mail art . Make sure you check it out because it is a great tutorial!
Magical Theater, by Rita Barakat, is the base for creating the Love Princess. It is a downloadable book full of whimsy and magic. This is a wonderful art resource to have on your hard drive. Not only are there tips and directions on creating your own paper dolls, there are also a few scenes completed. For this project I used things created in the book and added the finishing touches.
The base is a piece of cardboard from a package I received in the mail. Mod Podge was used to seal and attach the scene to the cardboard. For the princess I used a foam board as her base to give her structure and dimension.
The finishing touches on the piece were a mix of glitter glue, Nuvo Dew Drops and gems from the dollar store.
I used Glitter Mod Podge for the Princess because she needs to shine! Bits of extra trim from my stash was used along the edges.
It is okay to borrow other people's creativity to spark your own. Or, perhaps like me you want to create something from the heart, but are limited on time. The Magical Theater is a great resource to have!
Here is another piece I created using it.


text:
The 2001 Australian V8 Ultimate was the thirteenth and final round of the 2001 Shell Championship Series. It was held on the weekend of 1 to 2 December at the Sandown International Raceway in Melbourne, Victoria.

Race report

Todd Kelly took his first round win in a race weekend mainly composed of heavy rain.

Race results

Qualifying

Top Fifteen Shootout

Race 1

Race 2

Race 3

Championship Standings

References

Sandown
Motorsport at Sandown

redpajama_set_name: RedPajamaWikipedia


text:
Bithya
Bithya (Greek Βιθύας): Numidian chief, fighting for and against Rome during the Third Punic War (149-146 BCE).
Relief of a Numidian horseman
In 149 BCE, war broke out between the Carthaginians and Romans: the Third Punic War. In this war, both sides had Numidian allies. One of those fighting for Rome was Gulussa, who achieved considerable success. The Romans, however, were less successful. After their consul, Lucius Calpurnius Piso Caesoninus, had been unable to capture the towns of Aspis and Hippagreta (148), eight hundred Numidian horsemen, led by a man named Bithya, transferred their loyalty to Carthage.note[Appian, Punic Wars 111.]
In 147, the Roman commander Publius Cornelius Scipio Aemilianus laid siege to Carthage. While the Carthaginian commander Hasdrubal defended the city itself, Bithya served as a commander of the cavalry and was in charge of obtaining food from her African hinterlands. Our source, Appian, is ambiguous about the strength of his army, which certainly included a thousand horseman and perhaps also six thousand foot-soldiers.note[Appian, Punic Wars 114.] The Roman blockade forced Bithya to send the supplies by sea.
Sometimes, his ships were able to evade the Roman galleys that blocked access to the port of Carthage.note[Appian, Punic Wars 120.] As a countermeasure, Scipio closed the entrance to the southern port by means of a dam, but the besieged circumvented this by digging a canal to the sea from their northern, military port.
After the fall of Carthage in 146 BCE, the Numidian leader was, according to the Byzantine author Zonaras,note[Zonaras Extracts of History 9.30.] captured and sent to Rome. He was not executed but instead permitted to live under guard in one of the cities of Italy.
This page was created in 2020; last modified on 23 September 2020.
Home » Articles » Person » Bithya
Punic
Subdiscipline
Gulussa (article)
Numidia (article)


text:
Violence clash averted in Western Sahara stand-off
Stefan Simanowitz reports from Algier
"I have just lived through one of the most terrifying experiences of my life" renowned Spanish actor Willy Toledo, tells me over the phone in the early hours of Tuesday morning. He, together with six other international observers had just accompanied 28 Saharawi human rights defenders on their trip back from an international conference in Algeria to their home in Layoune, Western Sahara, the mineral-rich former Spanish colony controlled by Morocco…..(read full report >>)
This entry was posted in Human Rights, Political issues on September 30, 2010 by appleton.
Moroccan military court declares itself incompetent to try "Casablanca 7"
Saharawi Association of Victims of Serious Violatons of Human Rights committed by the Moroccan state (ASVDH)
El Aaiun, Western Sahara – 23/09/2010
Today, 23/09/10, the instructing judge informed the three Saharawi prisoners of opinion incarcerated in Salé prison, that they were no longer being prosecuted by the military court, which had declared itself incompetent.
Read report >>
AWSA's protest about the phosphate importations has gone international
AWSA's protest about the phosphate importations has gone international with the latest shipment to Hobart aboard Christine O becoming news on
international websites, with links in Switzerland and now Germany.
See stories at these links below:
saharaoccidental.blogspot.com
wsrw1
Read ARSO letter >>
This entry was posted in Phosphate importation, Political issues on September 20, 2010 by appleton.
8 Swiss parliamentarians protest ethics of Tasmanian company
Press release – for immediate release
This afternoon, a bulk vessel is set to arrive port of Risdon, Hobart, Tasmania, with phosphate rock plundered from occupied Western Sahara.
The trade to Tasmania takes place in violation of international law, and contributes to prolong one of the longest running conflicts in Africa. The cargo will be on board the vessel 'Christine O'.
Read rest of press release
Letter from Socialist Alliance to HE Mr Jose Luis Rodriguez, President of the Spanish government
"We are writing to bring to your attention the situation in Western Sahara and kindly request you forward this letter to HE Mr Jose Luis Rodriguez, President of the Spanish government.
The Socialist Alliance notes that Morocco invaded and illegally occupied Western Sahara in 1975. which led more than 165,000 Saharawis to flee their homeland and seek refuge in South West Algeria for the past 35 years in dire conditions.
Read letter….


text:
Rape trials generally showcase our legal system at its worst
By Brendan O'Reilly - posted Thursday, 27 July 2017 Sign Up for free e-mail updates!
Canberra was recently captivated by a high profile rape case involving cadets attending the Australian Defence Force Academy (ADFA). A 19 year old male ADFA cadet had been accused of raping an 18 year old female cadet in his room during the early hours, following a night of drinking.
As is the case with many rape trials, there were two distinct versions of events, which were "chalk and cheese" (to quote the defendant's barrister). The defendant did not deny having sex but said he believed it was consensual, and pleaded not guilty.
I will outline (a shortened version of) events as described in the Canberra Times report. The summary therefore is the reporter's take.
The complainant told the ACT Supreme Court about the defendant being drunk after a dining-in night, which she said involved a three-course meal on campus with free, unlimited alcohol. The woman described how, after texting, he joined her (about 10PM) at a nightclub and, after midnight, they took a taxi back to the defendant's room at the ADFA campus.
"It wasn't consensual. Because I just kind of went along with it but I just kept saying I want to go to sleep," she said. "It's still fuzzy, what happened."
The complainant conceded that she kissed and lay down with the defendant, and turned over to go to sleep. "Then I came back into consciousness ... back into what was happening. He was having sex and I just lay there because it took me a while to work out what was happening".
Prompted by police, the woman described herself as "heavily intoxicated" that night. She had not had dinner, she felt confused, dizzy, wobbly and that she didn't have a "barrier" on what she was saying or doing. She described how she fretted for days over whether to report it because she was worried about her career.
The defendant's barrister told the jury that his client was blown away by the accusation and claimed texts leading up to the incident showed the pair had liked each other. He said, if someone woke up and regretted their actions after a night out drinking, that didn't mean it hadn't been done of free will. He told the jury it was only when a friend told the woman that what had happened was wrong, that the woman started to question the night's events.
Prosecutors suggested the jury would have no trouble concluding beyond reasonable doubt that the woman did not consent to sexual intercourse. Alternatively, if the jury did find there was consent, the Crown said it was the woman's intoxication that caused the consent. Under ACT legislation, consent caused by intoxication is negated.
There are a number of aspects on the case that show legal procedures surrounding the case in a bad light.
Firstly, the Court ordered that the identity of the complainant be suppressed, and allowed her to give evidence by audio-visual link from a remote witness room. The judge said this was standard procedure in the ACT for sexual assault and rape cases, and jurors were not to assign any more or less weight to her evidence as a result.
I don't have a problem with all this, except that the same protections were not available to the defendant.
Brendan O'Reilly is a retired commonwealth public servant with a background in economics and accounting. He is currently pursuing private business interests.
» Australia is nuts in agreeing to adopt Net Zero - January 13, 2022
» Why do our governments and public institutions defame Australia by embracing an embellished 'Stolen Generations' narrative? - November 17, 2021
» A pox on rail fanatics - April 23, 2021
» The Government's AstraZeneca about face: humble pie but no apology to Craig Kelly - April 12, 2021
» The debts run-up by profligate governments are about to cost us dearly - March 18, 2021
All articles by Brendan O'Reilly


Check out this watermelon planter! - HAPPINESS IS WATERMELON SHAPED!
I think this came out great!
This morning, I consulted with my colleague, Bonnie Johnson, to ask what should go on the back of the planter, if anything. She definitely thought we should decorate the back. So, I talked to the kids on the rug. I only had a red stamp pad so we could only make red thumbprints. The kids decided on these 4 fruits to make: apple, strawberry, cherry or another watermelon.
The kids did a stand-up job! I'm so proud of our planter!
LOVE! Adorable! Great job to you and your 3rd graders!


Buying a property is one of the most important financial decisions you can make in your lifetime, so it is essential that you have all the information you need before committing to purchase.property – from first time buyers, to those moving up or down the property ladder or buy to let investors. We focus on providing our clients with all the information they need in order to make an informed decision before legally committing to purchase a property – by ensuring that our reports give clients as much information as possible.
Philip Carruthers have extensive experience providing in-depth surveys for all types of residential properties, including specific experience with Listed and historic properties and we also provide conservation advice. As an independent practice we are not affiliated with any estate agents or financial institutions and, therefore, provide unbiased advice. We take pride in ensuring complete client satisfaction as we work with a client, tailoring our services to meet their specific needs.
A Building Survey consists of an in depth analysis of the structure of the property as well as any advice on potential problem areas and is particularly suited to older or historic properties. If the property you are considering is newer and fairly "standard" then an RICS HomeBuyer Report should provide you with all the information you need in order to make an informed decision.
If you would like to find out more information about the range of services we can provide to clients, please call us on 01647 252502 and speak to a member of our friendly team, or email us at philipcarruthers@btconnect.com. We look forward to hearing from you soon.


Our team has experience working with all of the jails and courts throughout Maryland and Virginia.
You can take comfort in knowing that our team is here for you 24 hours a day, 365 days a year.
Our experienced staff will help you to understand the process based on the area you are in.
If you need help in the Maryland or Virginia areas, our professionally trained staff will make your loved one's release from custody a quicker, easier process.
property bonds. Low down payment financing options are also available for larger bail amounts.
Unfortunately bad situations happen to good people. Take comfort in knowing that we're here 24 hours a day, 365 days a year to help you with posting bail .


Are Pap Tests Becoming Obsolete?
Since 2012, gynecologists have asked women to schedule a Pap smear every three years, instead of annually. But is it time for a further change?
In recent years, some gynecologic oncologists have proposed replacing Pap smears with an "upstream" cervical cancer screening method. Instead of testing broadly for abnormal cells, women would be screened for human papillomavirus (HPV), the root cause of almost 12,000 new cases of cervical cancer each year.
A woman could be screened for HPV every three years, with a positive HPV test warranting follow-up colposcopy or cytology testing, recommends an interim guidance report from the Society of Gynecologic Oncology and the American Society for Colposcopy and Cervical Pathology.
Although countries like Australia and the Netherlands already use a similar HPV framework, the U.S. Preventive Services Task Force only okays screening methods that include a Pap smear. There are some concerns about switching from the Pap to the HPV test, including the higher costs of HPV tests and the fact that a positive HPV test might not predict whether the virus will ever cause cervical cancer.


text:
<?php

namespace Enhavo\Bundle\TranslationBundle\Tests\Locale;

use Enhavo\Bundle\TranslationBundle\Locale\LocaleProviderInterface;
use Enhavo\Bundle\TranslationBundle\Locale\LocaleResolver;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\ParameterBag;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;

class LocaleResolverTest extends TestCase
{
    private function createDependencies()
    {
        $dependencies = new LocaleResolverTestDependencies();
        $dependencies->requestStack = $this->getMockBuilder(RequestStack::class)->getMock();
        $dependencies->request = $this->getMockBuilder(Request::class)->getMock();
        $dependencies->request->attributes = $this->getMockBuilder(ParameterBag::class)->getMock();
        $dependencies->localeProvider = $this->getMockBuilder(LocaleProviderInterface::class)->getMock();

        $dependencies->localeProvider->method('getLocales')->willReturn(['fr', 'es']);
        $dependencies->localeProvider->method('getDefaultLocale')->willReturn('fr');

        return $dependencies;
    }

    private function createInstance($dependencies)
    {
        $resolver = new LocaleResolver(
            $dependencies->requestStack,
            $dependencies->localeProvider
        );

        return $resolver;
    }

    public function testResolveSuccess()
    {
        $dependencies = $this->createDependencies();
        $resolver = $this->createInstance($dependencies);

        $dependencies->requestStack->method('getMasterRequest')->willReturn($dependencies->request);
        $dependencies->request->attributes->method('get')->willReturnCallback(function($property) {
            if ($property === '_locale') {
                return 'es';
            }
        });

        $this->assertEquals('es', $resolver->resolve());
    }

    public function testResolveSet()
    {
        $dependencies = $this->createDependencies();
        $resolver = $this->createInstance($dependencies);

        $dependencies->requestStack->method('getMasterRequest')->willReturn($dependencies->request);
        $dependencies->request->attributes->method('get')->willReturnCallback(function($property) {
            if ($property === '_locale') {
                return 'es';
            }
        });

        $this->assertEquals('es', $resolver->resolve());

        // test if it will not be resolved again
        $dependencies->request->attributes->method('get')->willReturnCallback(function($property) {
            if ($property === '_locale') {
                return 'fr';
            }
        });
        $this->assertEquals('es', $resolver->resolve());
    }

}

class LocaleResolverTestDependencies
{
    /** @var RequestStack|MockObject */
    public $requestStack;

    /** @var Request|MockObject */
    public $request;

    /** @var LocaleProviderInterface|MockObject */
    public $localeProvider;
}


Drop the name "D'Angelico" to any group of experienced guitarists, and you'll hear a chorus of similar responses: legendary, incredible, unmatched. All fair assessments. After all, when Eric Clapton considers you to be one of the best, you are indeed, one of the best.
The storied brand of custom, hand-built guitars was launched in New York City back in 1932 by its namesake, the luthier John D'Angelico. His designs earned a loyal following and became the go-to for big-time jazz guitarists during that era. Unfortunately, D'Angelico, as a brand, all but died when John passed in 1964.
But a few years ago, a trio of music-minded entrepreneurs acquired the rights to the name and brought it back to life. Recently, they invited us to check out their semi-private showroom space in New York, which is now a hotspot for exclusive post-show parties and daytime drop-ins from marquee names.
Tucked on the fourth floor of an unassuming building in Manhattan's Flower District, there's no mistaking what you're walking into, as the first sight off the elevator is the wall-sized close-up of the iconic axe body.
A few steps in on the left is the first in a series of grand lounges. It feels as much like a shrine to the history (those are photos of John D'Angelico mounted above the couch) as it does a comfortable place to take a seat and test drive a guitar from the new collection.
Unlike the original D'Angelicos, of which only 30 or so were made every year (quite a lot when you consider just one dude was doing it by hand), it now turns out roughly 700 per month. D'Angelico didn't wing it on recreating the feel and sound of the legendary originals, either; the new models were designed using 3D scans and MRIs taken of older models.
It's no secret that D'Angelicos are a favorite among the biggest players out there, though in order to re-introduce the brand, they had to get clever. Our tour guide, CEO Brenden Cohen, who rebooted the label along with Sam Ash alum Steve Pisani and John Ferolito, Jr., explained their tactic: leaving guitars in backstage dressing rooms.
The strategy worked, and they've attracted the attention (and received commissions from) a whole bunch of elite strummers in every genre, including legends like Eric Clapton and The Doobie Brothers's Jeff Baxter.
Besides working with living legends to build custom $10,000+ touring guitars, the compound's often visited by premier customers when they're in town. Recent visitors while we were there included Gary Clark Jr., Susan Tedeschi, and Joe Bonamassa.
You don't need to make world tour money to afford one, though. The higher-end models are pricey (between $10,000 and $11,000), but they also produce a full series of high-quality models in the more affordable, sub-$2,000 range.
The company also branched out with a whole collection of acoustics, kept protected in a special climate-controlled room.
Cohen's office is incredibly comfortable and casual. It's easy to see why musicians would feel right at home stopping by.
Across the hall sits a team of on-site luthiers, expert craftsmen who can tweak, modify, and repair any and all pieces when necessary.
The space also functions as an after-hours hotspot. Other than hosting private parties for bands (The Billy Joel band has been known to hang here after their shows at nearby Madison Square Garden), the place is equipped with a legitimate stage and sound system to accommodate intimate performances. Recently, it served as a special venue for the CMJ Music Marathon.
And it wouldn't be a proper party spot without a fully stocked bar, complete with built-in and completely functional Marshall amps.
No doubt Mr. D'Angelico would be pumped to see his legacy resuscitated with such flair.
Joe McGauley is a senior editor at Supercompressor. He plays a mean Guitar Hero.


text:
Каза́чья Ло́пань (укр. Козача Лопань) — железнодорожная станция Южной железной дороги, находящаяся в посёлке Казачья Лопань. Участковая станция 2 класса. На станции расположена таможня, производится пограничный и таможенный контроль поездов, следующих в Россию. По станции Казачья Лопань некоторые поезда дальнего следования не останавливаются. Как правило, такие поезда проходят пограничный контроль по станции Харьков-Пассажирский. Расстояние до Харькова составляет 40 километров, до Белгорода — 43 километра.

Путевое развитие
Станция имеет 2 парка. Основной парк имеет 7 приёмо-отправочных путей, из которых два — II и III — главные. Боковой платформой оборудован путь 1, а промежуточными — попарно 3 и 4, 5 и 6 пути.

Сооружения
Двухэтажный вокзал, пост централизации, здание таможни, туалет.

Поезда
Участок Харьков-Казачья Лопань обслуживается электропоездами ЭР2, ЭР2Р, ЭР2Т моторвагонного депо Харьков, участок Белгород-Наумовка ЭР2, ЭД4, ЭД4М и ЭД4МК депо Белгород. Для большинства поездов станция Казачья Лопань является конечной. Международное пригородное сообщение прекращено с 12 февраля 2015 года. Также в нечётном направлении поезда идут до станций Харьков-Пассажирский, в чётном — до станций Наумовка, Белгород. Используются локомотивы ЧС2, ЧС7 ТЧ Октябрь, ВЛ11 ТЧ-9 Лозовая.

Звёздочкой отмечены поезда, курсирующие только в летний период.

Примечания

Станции Южной железной дороги
Железнодорожные станции и платформы Харьковской области
Железнодорожные станции, открытые в 1869 году