ACE Address Configuration Executive. Why ACE? ACE provides access to several address resolution protocols under a single API ACE is the only API available.

Slides:



Advertisements
Similar presentations
RIP V1 W.lilakiatsakun.
Advertisements

CIS 193A – Lesson9 Network Infrastructure. CIS 193A – Lesson9 Focus Question What are three high level subnets a corporate intranet will want to support?
1 Dynamic DNS. 2 Module - Dynamic DNS ♦ Overview The domain names and IP addresses of hosts and the devices may change for many reasons. This module focuses.
DNR-322L & DNR-326.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 10: DHCP Routing & Switching.
SYSTEM ADMINISTRATION Chapter 19
MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 13: Troubleshoot TCP/IP.
CCNA Guide to Cisco Networking Fundamentals Fourth Edition Chapter 9 Network Services.
IP Address Allocation, Resolution CIS 81 and CST 311 Rick Graziani Cabrillo College Spring 2006.
CCNA 2 v3.1 Module 2.
Static Route. Identify Default gateway What is the default gateway for PC1 PC2 r1 r2 PC1PC2.
DNS Client API. Utilizing DNS Functionality Baseline Application Kernel, Stack, BSP DNS Integral DNSAddServer() DNSRemoveServer() DNSGetServers() DNSgethostbyname()
1 Chapter Overview Understanding Windows Name Resolution Using WINS.
NET+OS Bootloader Overview Requirements How to Build How to Customize Changes to Applications Configuration Settings.
DHCP Dynamic Host Configuration Protocol. What is DHCP?  It does name resolution (one more?!) DNS resolves IP numbers and FQDN WINS resolves NetBIOS.
DHCP Server © N. Ganesan, Ph.D.. Reference DHCP Server Issues or leases dynamic IP addresses to clients in a network The lease can be subject to various.
Managing DHCP. 2 DHCP Overview Is a protocol that allows client computers to automatically receive an IP address and TCP/IP settings from a Server Reduces.
1 Semester 2 Module 3 Configuring a Router Yuda college of business James Chen
Chabot College ELEC autoinstall and SLARP.
Dynamic Host Configuration Protocol (DHCP)
Day15 IP Space/Setup. IP Suite of protocols –TCP –UDP –ICMP –GRE… Gives us many benefits –Routing of packets over internet –Fragmentation/Reassembly of.
11 NETWORK PROTOCOLS AND SERVICES Chapter 10. Chapter 10: Network Protocols and Services2 NETWORK PROTOCOLS AND SERVICES  Identify how computers on TCP/IP.
CN2668 Routers and Switches Kemtis Kunanuraksapong MSIS with Distinction MCTS, MCDST, MCP, A+
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Addressing Networking for Home and Small Businesses – Chapter 5.
DHCP Dynamic Host Configuration Protocol Information management 2 Groep T Leuven – Information department 2/18 Agenda Introduction BOOTP.
WINS Windows Internet Name Service. What is WINS?  It does name resolution (?!) DNS resolves IP numbers and FQDN ARP resolves IP numbers and MAC addresses.
Connecting Networks © 2004 Cisco Systems, Inc. All rights reserved. Exploring How IP Address Protocols Work INTRO v2.0—4-1.
ITS CSS Desktop Support Introduction to networking concepts Last updated: 9/30/2008 by pxahelp.
 Ping - Transmits four 32 byte packets to target computer ◦ Measures response time ◦ Returns IP address of target computer ◦ Example: ping uottawa.ca.
Objectives Define IP Address To be able to assign an IP address with its Subnet Mask and Default Gateway to a PC that operates using Windows 7 or Fedora.
IP Address Allocation, Resolution. Address Allocation.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 10: DHCP Routing & Switching.
PACKET ANALYSIS WITH WIRESHARK DHCP, DNS, HTTP Chanhyun park.
SNTP Simple Network Time Protocol. Simple Network Time Protocol (SNTP) Get accurate date and time from SNTP server –i.e Make Standard Time.
By Deepthi Reddy Ramya Balakumar Vandana Bhardwaj Simple Packet Filtering Firewall.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 2 Module 3 Configuring a Router.
IP Forwarding.
Links and LANs Link between two computers via cross cable The most simple way to connect two hosts is to link the two hosts with a cross cable.
1-1 NET+OS Software Group Flash API Multiple flash memory bank support New Flash API introduction Detailed Flash API Function presentation Supporting.
Basic Router Configuration 1.1 Global configuration Cisco allows us to configure the router to support various protocols and interfaces. The router stores.
Introduction to Biometrics Dr. Bhavani Thuraisingham The University of Texas at Dallas Lecture #23 Biometrics Standards - II November 14, 2005.
Module 3: Configuring a Client IP Address. Overview Configuring a Client to Use a Static IP Address Configuring a Client to Obtain an IP Address Automatically.
DHCP/BOOTP Dynamic Host Configuration Protocol Dynamic Host Configuration Protocol (DHCP) is a network protocol that enables a server to automatically.
IBM TSpaces Lab 3 Transactions Event Registration.
Computers and Math Binary, Hex, and Decimal Oh My Copyright © Texas Education Agency, All rights reserved.1.
Sample DNS configurations. Example 1: Master 'master' DNS and is authoritative for this zone for example.com provides 'caching' services for all other.
Discussion of MIF API draft-liu-mif-api-extension-04 IETF 80 March 28, 2011 Dapeng Liu.
ERICSON BRANDON M. BASCUG Alternate - REGIONAL NETWORK ADMINISTRATOR HOW TO TROUBLESHOOT TCP/IP CONNECTIVITY.
Linux Operations and Administration
Configuration Modes and TFTP Honolulu Community College Cisco Academy Training Center Semester 2 Version 2.1.
RIP Routing Protocol. 2 Routing Recall: There are two parts to routing IP packets: 1. How to pass a packet from an input interface to the output interface.
1 Run-to-Completion Non-Preemptive Scheduler. 2 In These Notes... What is Scheduling? What is non-preemptive scheduling? Examples Run to completion (cooperative)
 Router Configurations part2 2 nd semester
Quick Start Up Tool. Why the StartUp Tool? Plug-and-play installation of Ingate and SIP trunking, as simple as possible. Necessary steps:  Unpack your.
Configuring a Router Module 3 Semester 2. Router Configuration Tasks Name a router Set passwords Examine show commands Configure a serial interface Configure.
Copyright © 2006 Heathkit Company, Inc. All Rights Reserved Introduction to Networking Technologies Dynamic Host Configuration Protocol (DHCP)
Introduction C# program is collection of classes Classes are collection of methods and some statements That statements contains tokens C# includes five.
11 MAINTAINING A NETWORK INFRASTRUCTURE Chapter 9.
1 Dr. Tom Hicks Computer Science Department Trinity University 1.
Introduction to networking (Yarnfield) Configure a router.
Pass4itsure Cisco Dumps
Chapter Overview Understanding Windows Name Resolution Using WINS.
Network Configuration
Bootstrap And Autoconfiguration (BOOTP, DHCP)
Chapter 5: Switch Configuration
Chapter 10: DHCP Routing & Switching Chapter 10: DHCP
Chapter 5: Switch Configuration
Configuring a Router Module 3 Semester 2.
null, true, and false are also reserved.
Programming Language C Language.
Presentation transcript:

ACE Address Configuration Executive

Why ACE? ACE provides access to several address resolution protocols under a single API ACE is the only API available in Version 6 to obtain an IP address

What ACE does Runs one or more address resolution protocols on a timeline provided by an input table Calls BSP-defined callbacks on IP address events Stops and restarts protocols as required

Starting ACE int aceStart( const char * ifname, const aceProtocolInfo * proto_info, int num_protocols, aceHaveAddrCallback have_addr_fn, aceHaveAddrCallback have_2nd_addr_fn, aceLostAddrCallback lost_address_fn);

The aceProtocolInfo structure typedef struct { aceProtoStartInfo proto_start_info; void * proto_specific_info; size_t proto_specific_info_size; size_t proto_event_info_size; aceProtoStartSrvRtn start_protocol_fn; aceProtoStopSrvRtn stop_protocol_fn; aceProtoGetAddrSrvRtn get_addr_fn; aceProtoReleaseAddrSrvRtn release_addr_fn; } aceProtocolInfo;

aceProtocolInfo Fields proto_start_infoGeneric data used to start the protocol proto_specific_info Protocol-specific data used to start the protocol. proto_specific_info_sizeSize in bytes of the protocol- specific data used to start the protocol proto_event_info_sizeSize in bytes of protocol- specific data passed to ACE by the protocol in the aceAddressEvent function.

aceProtocolInfo Fields (2) start_protocol_fnProtocol-specific start function stop_protocol_fnProtocol-specific stop function get_addr_fnProtocol-specific function to convert IP address information from the protocol specific format to aceAddrInfo type release_addr_fnProtocol-specific function to release an IP address, might be NULL

The aceProtoStartInfo Structure typedef struct { int protocol; unsigned int priority; time_t delay_before_start; aceProtoShutdownType shutdown_type; } aceProtoStartInfo;

Shutdown Types typedef enum { ACE_ALWAYS_SHUTDOWN = 0, ACE_CONT_IF_GOT_ADDRESS = 1, ACE_NEVER_SHUTDOWN = 2 } aceProtoShutdownType;

Example Protocol-Specific Information typedef struct { BOOLEAN isConfigValid; BOOLEAN isEnabled; WORD32 autoip_local_addr; aceProtoStartInfo startInfo; } configAceAutoipInfo;

ACE Starts a Protocol… After the delay specified in delay_before_start from aceProtoStartInfo By calling the start_protocol_fn from aceProtocolInfo Passing it proto_specific_info from aceProtocolInfo

When an Address Event is Detected… The protocol calls aceAddressEvent() with protocol-specific event information ACE copies the information into an internal table and returns The ACE thread resolves redundant address events and invokes the appropriate BSP callback to inform the BSP

Address Events typedef enum { ACE_ADDR_NULL = 0, ACE_ADDR_NEW = 1, ACE_ADDR_RENEWED = 2, ACE_ADDR_REBOUND = 3, ACE_ADDR_LOST = 4 } aceAddrEventType;

aceAddrInfo Structure typedef struct { WORD32 ipaddr; WORD32 netmask; WORD32 servaddr; WORD32 def_gateway; int mtu; WORD32 name_server_address[ACE_MAX_DNS_SERVERS]; } aceAddrInfo;

ACE Callbacks typedef BOOLEAN (* aceHaveAddrCallback) ( const char * ifname, int protocol, aceAddrEventType addr_event, aceAddrInfo * addr_info, const void * proto_event_info, size_t proto_event_info_size);

ACE Callbacks(2) aceHaveAddrCallback - IP address has been obtained or renewed To use this IP address, the callback must configure the interface’s IP address and return TRUE. ACE will update its IP address information for the interface, and shut down protocols according to their shutdown type.

ACE Callbacks (3) To discard the IP address the callback must return FALSE ACE calls have_addr_fn() when the interface that obtained an IP address is not yet configured, or on an ACE_ADDR_RENEWED event ACE calls have_2nd_addr_fn() when the interface that obtained an IP address is already configured with the IP address.

ACE Callbacks (4) typedef void (* aceLostAddrCallback) (const char * ifname, int protocol, aceAddrEventType addr_event);

ACE Callbacks (5) aceLostAddrCallback – IP address has been lost. This callback must unconfigure an interface that lost the IP address. ACE will restart all protocols that need restarting according to their delay before start.

Adding a Protocol Add protocol service routines Add aceAddressEvents() calls The protocol should not run on the ACE thread unless it is trivial.

Protocol Service Routines typedef BOOLEAN (* aceProtoStartSrvRtn) (char * ifname, void * handle, const void * proto_spec_info, size_t proto_spec_info_size); typedef BOOLEAN (* aceProtoStopSrvRtn)(char * ifname); typedef BOOLEAN (* aceProtoGetAddrSrvRtn) (void * handle, const void * event_info, size_t event_info_size, aceAddrInfo * addr_info); typedef void (* aceProtoReleaseAddrSrvRtn)(char * ifname);

How does the BSP run ACE?

Supported Protocols ACE_PROT_BOOTP ACE_PROT_DHCP ACE_PROT_AUTOIP ACE_PROT_PING_ARP ACE_PROT_RARP ACE_PROT_STATIC Defined in ace_params.h

Protocol Specific Structures configAceDhcpInfo configAceBootpInfo configAceAutoipInfo configAceRarpInfo configAcePingArpInfo configAceStaticInfo In addition to specific data, each has isConfigValid and isEnabled fields, and generic startup data.

aceConfigInterfaceInfo Structure typedef struct { BOOLEAN isConfigValid; BOOLEAN isEnabled; char ifname[NETOS_MAX_IF_NAMELEN + 1]; configAceStaticInfostatic_config; configAceDhcpInfodhcp_config; configAceBootpInfobootp_config; configAceAutoipInfoautoip_config; configAceRarpInforarp_config; configAcePingArpInfo ping_arp_config; } aceConfigInterfaceInfo;

aceConfigInfo Structure typedef struct { int version; aceConfigInterfaceInfo ace_interface_info[CONFIG_ACE_MAX_INTERFACES]; } aceConfigInfo; Defined in ace_params.h. Part of board parameters, stored in NVRAM

Default ACE Configuration aceParams.c has the default ACE configuration. To change ACE configuration in NVRAM: 1. Change the default table in aceParams.c 2. Rebuild and reload the application 3. To reset board configuration to default, answer YES to the dialog question: “Reset configuration to default values?”

Default ACE Configuration (2) APP_USE_STATIC_IP is defined to TRUE, ACE runs static IP address on eth0 If APP_USE_STATIC_IP is defined to FALSE, ACE obtains IP address from the network on eth0 If APP_ENABLE_AUTO_IP is defined to TRUE, ACE runs Auto IP on eth0:0

The customizeStartAce function Called by netosStartTCP Performs these steps: –Reads ACE configuration data from NVRAM. –Calls aceInitialize to initialize data structures inside ACE. –Extracts the protocol-specific information for each interface from the NVRAM structure. –Calls NAIfconfigBringDeviceUp to start the device for each enabled interface. –Calls aceStart for each enabled interface to start the process of getting an IP address.

The customizeStopAce function Call this function to –stop ACE on a specified interface, and –unconfigure the IP address for the interface.

Default ACE Callbacks customizeAceHaveAddress - configures the interface with the IP address by calling customizeAceConfigureInterface and returns TRUE. Makes a query for global IP parameters for DHCP. customizeAceHaveAnotherAddress – discards an IP address and returns FALSE. customizeAceLostAddress – for Auto IP only, unconfigures interface and continues to run; for other protocols, resets the board.

High Level IP address Configuration API customizeAceGetInterfaceAddrInfo – if an address has been configured, returns this address and TRUE; otherwise, returns FALSE. customizeAceConfigureInterface – configures an IP address, subnet mask, default gateway (if present), DNS servers (if present), and global IP parameters (if present). customizeAceClearInterfaceConfiguration – unconfigures the IP address for the interface.