auto_ip.h File Reference

Auto-IP (Dynamic Configuration of IPv4 Link-Local Addresses) More...

#include "core/net.h"

Go to the source code of this file.

Data Structures

struct  AutoIpSettings
 Auto-IP settings. More...
 
struct  _AutoIpContext
 Auto-IP context. More...
 

Macros

#define AUTO_IP_SUPPORT   DISABLED
 
#define AUTO_IP_BCT_SUPPORT   DISABLED
 
#define AUTO_IP_TICK_INTERVAL   200
 
#define AUTO_IP_PROBE_WAIT   1000
 
#define AUTO_IP_PROBE_NUM   3
 
#define AUTO_IP_PROBE_MIN   1000
 
#define AUTO_IP_PROBE_MAX   2000
 
#define AUTO_IP_ANNOUNCE_WAIT   2000
 
#define AUTO_IP_ANNOUNCE_NUM   2
 
#define AUTO_IP_ANNOUNCE_INTERVAL   2000
 
#define AUTO_IP_MAX_CONFLICTS   10
 
#define AUTO_IP_RATE_LIMIT_INTERVAL   60000
 
#define AUTO_IP_DEFEND_INTERVAL   10000
 
#define AUTO_IP_PREFIX   IPV4_ADDR(169, 254, 0, 0)
 
#define AUTO_IP_MASK   IPV4_ADDR(255, 255, 0, 0)
 
#define AUTO_IP_ADDR_MIN   IPV4_ADDR(169, 254, 1, 0)
 
#define AUTO_IP_ADDR_MAX   IPV4_ADDR(169, 254, 254, 255)
 
#define AutoIpContext   struct _AutoIpContext
 

Typedefs

typedef void(* AutoIpLinkChangeCallback) (AutoIpContext *context, NetInterface *interface, bool_t linkState)
 Link state change callback. More...
 
typedef void(* AutoIpStateChangeCallback) (AutoIpContext *context, NetInterface *interface, AutoIpState state)
 FSM state change callback. More...
 

Enumerations

enum  AutoIpState {
  AUTO_IP_STATE_INIT = 0 , AUTO_IP_STATE_PROBING = 1 , AUTO_IP_STATE_ANNOUNCING = 2 , AUTO_IP_STATE_CONFIGURED = 3 ,
  AUTO_IP_STATE_DEFENDING = 4
}
 Auto-IP FSM states. More...
 

Functions

void autoIpGetDefaultSettings (AutoIpSettings *settings)
 Initialize settings with default values. More...
 
error_t autoIpInit (AutoIpContext *context, const AutoIpSettings *settings)
 Auto-IP initialization. More...
 
error_t autoIpStart (AutoIpContext *context)
 Start Auto-IP process. More...
 
error_t autoIpStop (AutoIpContext *context)
 Stop Auto-IP process. More...
 
AutoIpState autoIpGetState (AutoIpContext *context)
 Retrieve current state. More...
 

Detailed Description

Auto-IP (Dynamic Configuration of IPv4 Link-Local Addresses)

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.0

Definition in file auto_ip.h.

Macro Definition Documentation

◆ AUTO_IP_ADDR_MAX

#define AUTO_IP_ADDR_MAX   IPV4_ADDR(169, 254, 254, 255)

Definition at line 135 of file auto_ip.h.

◆ AUTO_IP_ADDR_MIN

#define AUTO_IP_ADDR_MIN   IPV4_ADDR(169, 254, 1, 0)

Definition at line 134 of file auto_ip.h.

◆ AUTO_IP_ANNOUNCE_INTERVAL

#define AUTO_IP_ANNOUNCE_INTERVAL   2000

Definition at line 102 of file auto_ip.h.

◆ AUTO_IP_ANNOUNCE_NUM

#define AUTO_IP_ANNOUNCE_NUM   2

Definition at line 95 of file auto_ip.h.

◆ AUTO_IP_ANNOUNCE_WAIT

#define AUTO_IP_ANNOUNCE_WAIT   2000

Definition at line 88 of file auto_ip.h.

◆ AUTO_IP_BCT_SUPPORT

#define AUTO_IP_BCT_SUPPORT   DISABLED

Definition at line 46 of file auto_ip.h.

◆ AUTO_IP_DEFEND_INTERVAL

#define AUTO_IP_DEFEND_INTERVAL   10000

Definition at line 123 of file auto_ip.h.

◆ AUTO_IP_MASK

#define AUTO_IP_MASK   IPV4_ADDR(255, 255, 0, 0)

Definition at line 131 of file auto_ip.h.

◆ AUTO_IP_MAX_CONFLICTS

#define AUTO_IP_MAX_CONFLICTS   10

Definition at line 109 of file auto_ip.h.

◆ AUTO_IP_PREFIX

#define AUTO_IP_PREFIX   IPV4_ADDR(169, 254, 0, 0)

Definition at line 129 of file auto_ip.h.

◆ AUTO_IP_PROBE_MAX

#define AUTO_IP_PROBE_MAX   2000

Definition at line 81 of file auto_ip.h.

◆ AUTO_IP_PROBE_MIN

#define AUTO_IP_PROBE_MIN   1000

Definition at line 74 of file auto_ip.h.

◆ AUTO_IP_PROBE_NUM

#define AUTO_IP_PROBE_NUM   3

Definition at line 67 of file auto_ip.h.

◆ AUTO_IP_PROBE_WAIT

#define AUTO_IP_PROBE_WAIT   1000

Definition at line 60 of file auto_ip.h.

◆ AUTO_IP_RATE_LIMIT_INTERVAL

#define AUTO_IP_RATE_LIMIT_INTERVAL   60000

Definition at line 116 of file auto_ip.h.

◆ AUTO_IP_SUPPORT

#define AUTO_IP_SUPPORT   DISABLED

Definition at line 39 of file auto_ip.h.

◆ AUTO_IP_TICK_INTERVAL

#define AUTO_IP_TICK_INTERVAL   200

Definition at line 53 of file auto_ip.h.

◆ AutoIpContext

#define AutoIpContext   struct _AutoIpContext

Definition at line 139 of file auto_ip.h.

Typedef Documentation

◆ AutoIpLinkChangeCallback

typedef void(* AutoIpLinkChangeCallback) (AutoIpContext *context, NetInterface *interface, bool_t linkState)

Link state change callback.

Definition at line 165 of file auto_ip.h.

◆ AutoIpStateChangeCallback

typedef void(* AutoIpStateChangeCallback) (AutoIpContext *context, NetInterface *interface, AutoIpState state)

FSM state change callback.

Definition at line 173 of file auto_ip.h.

Enumeration Type Documentation

◆ AutoIpState

Auto-IP FSM states.

Enumerator
AUTO_IP_STATE_INIT 
AUTO_IP_STATE_PROBING 
AUTO_IP_STATE_ANNOUNCING 
AUTO_IP_STATE_CONFIGURED 
AUTO_IP_STATE_DEFENDING 

Definition at line 151 of file auto_ip.h.

Function Documentation

◆ autoIpGetDefaultSettings()

void autoIpGetDefaultSettings ( AutoIpSettings settings)

Initialize settings with default values.

Parameters
[out]settingsStructure that contains Auto-IP settings

Definition at line 59 of file auto_ip.c.

◆ autoIpGetState()

AutoIpState autoIpGetState ( AutoIpContext context)

Retrieve current state.

Parameters
[in]contextPointer to the Auto-IP context
Returns
Current Auto-IP state

Definition at line 196 of file auto_ip.c.

◆ autoIpInit()

error_t autoIpInit ( AutoIpContext context,
const AutoIpSettings settings 
)

Auto-IP initialization.

Parameters
[in]contextPointer to the Auto-IP context
[in]settingsAuto-IP specific settings
Returns
Error code

Definition at line 82 of file auto_ip.c.

◆ autoIpStart()

error_t autoIpStart ( AutoIpContext context)

Start Auto-IP process.

Parameters
[in]contextPointer to the Auto-IP context
Returns
Error code

Definition at line 129 of file auto_ip.c.

◆ autoIpStop()

error_t autoIpStop ( AutoIpContext context)

Stop Auto-IP process.

Parameters
[in]contextPointer to the Auto-IP context
Returns
Error code

Definition at line 165 of file auto_ip.c.