IPNets.jl: IPv4 / IPv6 Network Abstractions for Julia

IPNets.jl 

IPNets.jl is a Julia package that provides IP network types. Both IPv4 and IPv6 networks can be described with IPNets.jl using standard, intuitive syntax.

Main Features

An important aspect of IPNets.jl is the ability to treat IP networks as collections while not actually allocating the memory required to store a full range of addresses. Operations such as membership testing, indexing and iteration are supported with IPNet types. The following examples should help clarify.

Constructors:

julia> using IPNets, Sockets

julia> IPv4Net("1.2.3.0/24") # string in CIDR notation
IPv4Net("1.2.3.0/24")

julia> parse(IPv4Net, "1.2.3.0/24") # same as above
IPv4Net("1.2.3.0/24")

julia> IPv4Net(ip"1.2.3.0", 24) # IPv4 and mask as number of bits
IPv4Net("1.2.3.0/24")

julia> IPv4Net(ip"1.2.3.0", ip"255.255.255.0") # IPv4 and mask as another IPv4
IPv4Net("1.2.3.0/24")

julia> IPv4Net("1.2.3.4") # 32 bit mask default
IPv4Net("1.2.3.4/32")

Membership test:

julia> ip4net = IPv4Net("1.2.3.0/24");

julia> ip"1.2.3.4" in ip4net
true

julia> ip"1.2.4.1" in ip4net
false

Length, indexing, and iteration:

julia> ip4net = IPv4Net("1.2.3.0/24");

julia> length(ip4net)
256

julia> ip4net[0] # index from 0 (!)
ip"1.2.3.0"

julia> ip4net[0xff]
ip"1.2.3.255"

julia> ip4net[4:8]
5-element Vector{IPv4}:
 ip"1.2.3.4"
 ip"1.2.3.5"
 ip"1.2.3.6"
 ip"1.2.3.7"
 ip"1.2.3.8"

julia> for ip in ip4net
           @show ip
       end
ip = ip"1.2.3.0"
ip = ip"1.2.3.1"
[...]
ip = ip"1.2.3.255"

Though these examples use the IPv4Net type, the IPv6Net type is also available with similar behavior:

julia> IPv6Net("1:2::/64") # string in CIDR notation
IPv6Net("1:2::/64")

julia> parse(IPv6Net, "1:2::/64") # same as above
IPv6Net("1:2::/64")

julia> IPv6Net(ip"1:2::", 64) # IPv6 and prefix
IPv6Net("1:2::/64")

julia> IPv6Net("1:2::3:4") # 128 bit mask default
IPv6Net("1:2::3:4/128")

For unknown (string) input use the IPNet supertype constructor (or parse):

julia> IPNet("1.2.3.0/24")
IPv4Net("1.2.3.0/24")

julia> parse(IPNet, "1.2.3.4")
IPv4Net("1.2.3.4/32")

julia> IPNet("1:2::3:4")
IPv6Net("1:2::3:4/128")

julia> parse(IPNet, "1:2::/64")
IPv6Net("1:2::/64")

Limitations

  • Non-contiguous subnetting for IPv4 addresses (e.g., a netmask of "255.240.255.0") is not supported. Subnets must be able to be represented as a series of contiguous mask bits.

Download Details:

Author: JuliaWeb
Source Code: https://github.com/JuliaWeb/IPNets.jl 
License: MIT license

#julia #ip #network 

What is GEEK

Buddha Community

IPNets.jl: IPv4 / IPv6 Network Abstractions for Julia

IPNets.jl: IPv4 / IPv6 Network Abstractions for Julia

IPNets.jl 

IPNets.jl is a Julia package that provides IP network types. Both IPv4 and IPv6 networks can be described with IPNets.jl using standard, intuitive syntax.

Main Features

An important aspect of IPNets.jl is the ability to treat IP networks as collections while not actually allocating the memory required to store a full range of addresses. Operations such as membership testing, indexing and iteration are supported with IPNet types. The following examples should help clarify.

Constructors:

julia> using IPNets, Sockets

julia> IPv4Net("1.2.3.0/24") # string in CIDR notation
IPv4Net("1.2.3.0/24")

julia> parse(IPv4Net, "1.2.3.0/24") # same as above
IPv4Net("1.2.3.0/24")

julia> IPv4Net(ip"1.2.3.0", 24) # IPv4 and mask as number of bits
IPv4Net("1.2.3.0/24")

julia> IPv4Net(ip"1.2.3.0", ip"255.255.255.0") # IPv4 and mask as another IPv4
IPv4Net("1.2.3.0/24")

julia> IPv4Net("1.2.3.4") # 32 bit mask default
IPv4Net("1.2.3.4/32")

Membership test:

julia> ip4net = IPv4Net("1.2.3.0/24");

julia> ip"1.2.3.4" in ip4net
true

julia> ip"1.2.4.1" in ip4net
false

Length, indexing, and iteration:

julia> ip4net = IPv4Net("1.2.3.0/24");

julia> length(ip4net)
256

julia> ip4net[0] # index from 0 (!)
ip"1.2.3.0"

julia> ip4net[0xff]
ip"1.2.3.255"

julia> ip4net[4:8]
5-element Vector{IPv4}:
 ip"1.2.3.4"
 ip"1.2.3.5"
 ip"1.2.3.6"
 ip"1.2.3.7"
 ip"1.2.3.8"

julia> for ip in ip4net
           @show ip
       end
ip = ip"1.2.3.0"
ip = ip"1.2.3.1"
[...]
ip = ip"1.2.3.255"

Though these examples use the IPv4Net type, the IPv6Net type is also available with similar behavior:

julia> IPv6Net("1:2::/64") # string in CIDR notation
IPv6Net("1:2::/64")

julia> parse(IPv6Net, "1:2::/64") # same as above
IPv6Net("1:2::/64")

julia> IPv6Net(ip"1:2::", 64) # IPv6 and prefix
IPv6Net("1:2::/64")

julia> IPv6Net("1:2::3:4") # 128 bit mask default
IPv6Net("1:2::3:4/128")

For unknown (string) input use the IPNet supertype constructor (or parse):

julia> IPNet("1.2.3.0/24")
IPv4Net("1.2.3.0/24")

julia> parse(IPNet, "1.2.3.4")
IPv4Net("1.2.3.4/32")

julia> IPNet("1:2::3:4")
IPv6Net("1:2::3:4/128")

julia> parse(IPNet, "1:2::/64")
IPv6Net("1:2::/64")

Limitations

  • Non-contiguous subnetting for IPv4 addresses (e.g., a netmask of "255.240.255.0") is not supported. Subnets must be able to be represented as a series of contiguous mask bits.

Download Details:

Author: JuliaWeb
Source Code: https://github.com/JuliaWeb/IPNets.jl 
License: MIT license

#julia #ip #network 

Abstract class & Abstract method in C# | OOP in C# Part-24

https://youtu.be/vonwoaUl0Hw

#oop #abstract #abstract method #abstract class #what is abstract

IPv6 Networking Basics - Full Course

IPv6 for beginners.  You will need access to Packet Tracer or GNS3 to do the labs. Here is the professional course:

0:00:00 - Course Introduction
0:3:33 - The Need for IPv6
0:25:53 - The Features of IPv6
0:56:23 - IPv6 Addressing
1:24:19 - IPv6 Address Types
1:53:04 - IPv6 Addressing Lab
2:13:04 - ICMPv6 and Neighbor Discovery
2:27:20 - ICMPv6 Lab
2:47:44 - Enabling IPv6
2:56:11 - Final IPv6 Lab

World class IT certification video training, follow along labs, practice exams and live Cisco racks.

#ipv6 #networking #network

Marlon  Boyle

Marlon Boyle

1594312560

Autonomous Driving Network (ADN) On Its Way

Talking about inspiration in the networking industry, nothing more than Autonomous Driving Network (ADN). You may hear about this and wondering what this is about, and does it have anything to do with autonomous driving vehicles? Your guess is right; the ADN concept is derived from or inspired by the rapid development of the autonomous driving car in recent years.

Image for post

Driverless Car of the Future, the advertisement for “America’s Electric Light and Power Companies,” Saturday Evening Post, the 1950s.

The vision of autonomous driving has been around for more than 70 years. But engineers continuously make attempts to achieve the idea without too much success. The concept stayed as a fiction for a long time. In 2004, the US Defense Advanced Research Projects Administration (DARPA) organized the Grand Challenge for autonomous vehicles for teams to compete for the grand prize of $1 million. I remembered watching TV and saw those competing vehicles, behaved like driven by drunk man, had a really tough time to drive by itself. I thought that autonomous driving vision would still have a long way to go. To my surprise, the next year, 2005, Stanford University’s vehicles autonomously drove 131 miles in California’s Mojave desert without a scratch and took the $1 million Grand Challenge prize. How was that possible? Later I learned that the secret ingredient to make this possible was using the latest ML (Machine Learning) enabled AI (Artificial Intelligent ) technology.

Since then, AI technologies advanced rapidly and been implemented in all verticals. Around the 2016 time frame, the concept of Autonomous Driving Network started to emerge by combining AI and network to achieve network operational autonomy. The automation concept is nothing new in the networking industry; network operations are continually being automated here and there. But this time, ADN is beyond automating mundane tasks; it reaches a whole new level. With the help of AI technologies and other critical ingredients advancement like SDN (Software Defined Network), autonomous networking has a great chance from a vision to future reality.

In this article, we will examine some critical components of the ADN, current landscape, and factors that are important for ADN to be a success.

The Vision

At the current stage, there are different terminologies to describe ADN vision by various organizations.
Image for post

Even though slightly different terminologies, the industry is moving towards some common terms and consensus called autonomous networks, e.g. TMF, ETSI, ITU-T, GSMA. The core vision includes business and network aspects. The autonomous network delivers the “hyper-loop” from business requirements all the way to network and device layers.

On the network layer, it contains the below critical aspects:

  • Intent-Driven: Understand the operator’s business intent and automatically translate it into necessary network operations. The operation can be a one-time operation like disconnect a connection service or continuous operations like maintaining a specified SLA (Service Level Agreement) at the all-time.
  • **Self-Discover: **Automatically discover hardware/software changes in the network and populate the changes to the necessary subsystems to maintain always-sync state.
  • **Self-Config/Self-Organize: **Whenever network changes happen, automatically configure corresponding hardware/software parameters such that the network is at the pre-defined target states.
  • **Self-Monitor: **Constantly monitor networks/services operation states and health conditions automatically.
  • Auto-Detect: Detect network faults, abnormalities, and intrusions automatically.
  • **Self-Diagnose: **Automatically conduct an inference process to figure out the root causes of issues.
  • **Self-Healing: **Automatically take necessary actions to address issues and bring the networks/services back to the desired state.
  • **Self-Report: **Automatically communicate with its environment and exchange necessary information.
  • Automated common operational scenarios: Automatically perform operations like network planning, customer and service onboarding, network change management.

On top of those, these capabilities need to be across multiple services, multiple domains, and the entire lifecycle(TMF, 2019).

No doubt, this is the most ambitious goal that the networking industry has ever aimed at. It has been described as the “end-state” and“ultimate goal” of networking evolution. This is not just a vision on PPT, the networking industry already on the move toward the goal.

David Wang, Huawei’s Executive Director of the Board and President of Products & Solutions, said in his 2018 Ultra-Broadband Forum(UBBF) keynote speech. (David W. 2018):

“In a fully connected and intelligent era, autonomous driving is becoming a reality. Industries like automotive, aerospace, and manufacturing are modernizing and renewing themselves by introducing autonomous technologies. However, the telecom sector is facing a major structural problem: Networks are growing year by year, but OPEX is growing faster than revenue. What’s more, it takes 100 times more effort for telecom operators to maintain their networks than OTT players. Therefore, it’s imperative that telecom operators build autonomous driving networks.”

Juniper CEO Rami Rahim said in his keynote at the company’s virtual AI event: (CRN, 2020)

“The goal now is a self-driving network. The call to action is to embrace the change. We can all benefit from putting more time into higher-layer activities, like keeping distributors out of the business. The future, I truly believe, is about getting the network out of the way. It is time for the infrastructure to take a back seat to the self-driving network.”

Is This Vision Achievable?

If you asked me this question 15 years ago, my answer would be “no chance” as I could not imagine an autonomous driving vehicle was possible then. But now, the vision is not far-fetch anymore not only because of ML/AI technology rapid advancement but other key building blocks are made significant progress, just name a few key building blocks:

  • software-defined networking (SDN) control
  • industry-standard models and open APIs
  • Real-time analytics/telemetry
  • big data processing
  • cross-domain orchestration
  • programmable infrastructure
  • cloud-native virtualized network functions (VNF)
  • DevOps agile development process
  • everything-as-service design paradigm
  • intelligent process automation
  • edge computing
  • cloud infrastructure
  • programing paradigm suitable for building an autonomous system . i.e., teleo-reactive programs, which is a set of reactive rules that continuously sense the environment and trigger actions whose continuous execution eventually leads the system to satisfy a goal. (Nils Nilsson, 1996)
  • open-source solutions

#network-automation #autonomous-network #ai-in-network #self-driving-network #neural-networks

Monty  Boehm

Monty Boehm

1658368689

BackpropNeuralNet.jl: A Neural Network in Julia

Install

Stable

Pkg.add("BackpropNeuralNet")

Source

Pkg.clone("https://github.com/compressed/BackpropNeuralNet.jl.git")

Usage

To initialize a network of 2 inputs, 1 hidden layer with 3 neurons, and 2 outputs:

using BackpropNeuralNet

net = init_network([2, 3, 2])

# To train the network use the form `train(network, input, output)`:
train(net, [0.15, 0.7],[0.1, 0.9])

# To evaluate an input use the form `net_eval(network, inputs)`
net_eval(net, [0.15, 0.7])

History

This is a Julia implementation of a neural network based on Sergio Fierens ruby version.

Author: Compressed
Source Code: https://github.com/compressed/BackpropNeuralNet.jl 
License: View license

#julia #network