Write a program that does simplified bgp route advertising

Assignment Help PL-SQL Programming
Reference no: EM13315630

In this assignment you will write a program that does simplified BGP route advertising. Your program will take four command-line arguments:
<port number to listen on> <AS number> <BGP ID> <routing table file>

It will first read the routes from the routing table file. Then, it will listen on the specified TCP port and accept connections from BGP peers. When a peer connects, it will send BGP UPDATE messages to the new peer, advertising the routes currently in the routing table.

Additionally, it will periodically check the modification time of the routing table file and if it detects that it has changed, it will re-read it and
send BGP UPDATEs reflecting the changes to all connected peers. This functionality is described in more detail below.

1. Routing table file

The file format will be very similar to the one in assignment 2, except that the nexthop value will be an actual IP address. That is, the format will be:

<subnet> <netmask> <nexthop>

where all three values are in IPv4 dotted decimal and are seperated by spaces. Example:

112.23.56.0 255.255.255.0 1.2.3.4

Note that the nexthop address is from the point of view of routers outside of your AS. Another difference from the previous assignment is that the routing table may change after your program has started and you need to be able to detect changes. The simplest way to do that is to periodically check the file modification time and compare it against a previously stored modification time. If the time changes, that means that the file has been changed and you should re-read it and send an update to the currently connected peers.

To check a file's modification time you can use "os.path.getmtime(<file path>)" (after importing the "os" module). You can check the time every 10 seconds (or less for testing) and you should only re-read the file if the time has changed.

2. Communication with BGP peers

When a new client connects to your server, you should first send a BGP OPEN message with your AS number and BGP ID and no parameters (see next section for more details on the message format). You should also try to read a BGP OPEN message from the newly connected peer. If the message you read is invalid (e.g. does not start with marker = 16 FF's or the type field is not set to 1 or the length is incorrect for a BGP OPEN with no parameters) you should print a warning and disconnect the client. If the remote peer's AS or ID is the same as yours, you should also print a warning and disconnect the client.

After the connection has been established an you have exchanged OPEN messages, you should send a BGP UPDATE messages to the peer, advertising all of the routes currently in your routing table.


Attachment:- Assignment.pdf

Reference no: EM13315630

Questions Cloud

What is the maximum weight of the paddlers and other gear : A simple "box-like" canoe has outer dimensions of 15.0 ft in length, 2.0 ft in width, and 1.0 ft in depth. The canoe shell is made of concrete with a specific weight of 58.0 lbs/ft^3 and contains 15.0 lbs of steel reinforcement with negligible vol..
Write a review of dividends and investment strategies : Write a review of dividends and investment strategies - explain the key points that the author is trying to communicate. Your review should be at least 1 page and no more than 2 pages, not counting the title or reference pages.
Estimate settlement at t after the beginning of construction : The coefficient of consolidation of a clay for a given pressure range was obtained as 8x10^-3 mm^2/sec on the basis of one-dimensional consolidation test results. In the field, there is a 2-m thick layer of the same clay.
Find the charge on the outisde of the conductor : Given a sphere of charge inside a conductor. The sphere has a radius of 5cm. Find the charge on the outisde of the conductor
Write a program that does simplified bgp route advertising : Additionally, it will periodically check the modification time of the routing table file and if it detects that it has changed, it will re-read it and send BGP UPDATEs reflecting the changes to all connected peers. This functionality is described i..
What is the angular acceleration of the disk : Just as you had done in your lab, imagine that you have a solid uniform disk (same as a uniform cylinder) with a string wound around its rim. What is the angular acceleration of the disk
Determine the minimum theoretical wall thickness : compressed nitrogen (140 lbm) is stored in a spherical tank of diameter D = 2.5 ft @ temp. of 77 degrees Fahrenheit . what is the pressure inside the tank? if the max allowable stress is 30 ksi, find the minimum theoretical wall thickness.
Estimate the channel roughness in trapezoidal channel : flow of 600cfs is measured at a depth of 3.4 ft in trapezoidal channel with bottom width of 25ft and side slopes of 3:1(h:v). The channel reach has a slope of .002. Estimate the channel roughness.
Determine the average power transmitted by the wave : A fellow student of mathematical bent tells you that the wave function of a traveling wave on a thin rope isy(x,t)= 2.10mm cos[( 6.96rad/m )x+( 744rad/s )t]. Determine the average power transmitted by the wave

Reviews

Write a Review

PL-SQL Programming Questions & Answers

  Create a database model

Create a database model and Submit the table creation statements for the Database Model.

  Write pl-sql procedures and functions

Write PL/SQL procedures and functions to populate and query that database

  Sql questions

Write a query to display using the employees table the EMPLOYEE_ID, FIRST_NAME, LAST_NAME and HIRE_DATE of every employee who was hired after to 1 January, 1995.

  Run the lab_03_01.sql script

Run the lab_03_01.sql script in the attached file to create the SAL_HISTORY table. Display the structure of the SAL_HISTORY table.

  Write sql queries

Write a query to display the last name, department number, and salary of any employee whose department number and salary both match the department number and salary of any employee who earns a commission.

  Explaining sql insert statement to insert new row in cds

Write down a SQL insert statement to insert new row in "CDS" table.

  Write down name of actors in ascending order

Write down actors (or actress, your choice, but not both) who have won at least two (2) Academy Awards for best actor/actress. Provide the actor name, movie title & year. Order the result by actor name."

  What is an sql injection attack

What is an SQL injection attack? Explain how it works, and what precautions must be taken to prevent SQL injection attacks.What are two advantages of encrypting data stored in the database?

  Determine resonant frequency in series rlc resonant circuit

Given the series RLC resonant circuit in the figure, operating at variable frequency, determine: The resonant frequency ω o ,  The circuit’s quality factor Q , The cut-off frequencies, f 1  & f 2  and the bandwidth BW

  Query that uses cube operator to return lineitemsum

Write summary query which uses CUBE operator to return LineItemSum (which is the sum of InvoiceLineItemAmount) group by Account(an alias for AccountDesciption).

  Query to show customers were missing for existing orders

As DBA, your manager called a meeting and asked why there are so many orders for customers that don't exist in the customer table. Write query which would shows which customers were missing for existing orders. Use a join or a subquery.

  Sql query into a relational algebra statement

Turn this SQL query into a relational algebra statement? SELECT Request.reqfor, Ordering.invamt, Ordering.invnbr, Ordering.invdat

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd