This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
core/netif/NyLPC_cIPv4Config.h@115:fa79286d8ea4, 2017-02-24 (annotated)
- Committer:
- furutani
- Date:
- Fri Feb 24 04:43:41 2017 +0000
- Revision:
- 115:fa79286d8ea4
- Parent:
- 109:18f12ac01097
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nyatla | 109:18f12ac01097 | 1 | /********************************************************************************* |
nyatla | 109:18f12ac01097 | 2 | * PROJECT: MiMic |
nyatla | 109:18f12ac01097 | 3 | * -------------------------------------------------------------------------------- |
nyatla | 109:18f12ac01097 | 4 | * |
nyatla | 109:18f12ac01097 | 5 | * This file is part of MiMic |
nyatla | 109:18f12ac01097 | 6 | * Copyright (C)2011 Ryo Iizuka |
nyatla | 109:18f12ac01097 | 7 | * |
nyatla | 109:18f12ac01097 | 8 | * MiMic is free software: you can redistribute it and/or modify |
nyatla | 109:18f12ac01097 | 9 | * it under the terms of the GNU Lesser General Public License as published |
nyatla | 109:18f12ac01097 | 10 | * by the Free Software Foundation, either version 3 of the License, or |
nyatla | 109:18f12ac01097 | 11 | * (at your option) any later version. |
nyatla | 109:18f12ac01097 | 12 | * |
nyatla | 109:18f12ac01097 | 13 | * This program is distributed in the hope that it will be useful, |
nyatla | 109:18f12ac01097 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
nyatla | 109:18f12ac01097 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
nyatla | 109:18f12ac01097 | 16 | * GNU General Public License for more details. |
nyatla | 109:18f12ac01097 | 17 | * |
nyatla | 109:18f12ac01097 | 18 | * You should have received a copy of the GNU Lesser General Public License |
nyatla | 109:18f12ac01097 | 19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
nyatla | 109:18f12ac01097 | 20 | * |
nyatla | 109:18f12ac01097 | 21 | * For further information please contact. |
nyatla | 109:18f12ac01097 | 22 | * http://nyatla.jp/ |
nyatla | 109:18f12ac01097 | 23 | * <airmail(at)ebony.plala.or.jp> or <nyatla(at)nyatla.jp> |
nyatla | 109:18f12ac01097 | 24 | * |
nyatla | 109:18f12ac01097 | 25 | *********************************************************************************/ |
nyatla | 109:18f12ac01097 | 26 | /** |
nyatla | 109:18f12ac01097 | 27 | * @file |
nyatla | 109:18f12ac01097 | 28 | * このファイルは、NyLPC_cIPv4Configクラスを定義します。 |
nyatla | 109:18f12ac01097 | 29 | */ |
nyatla | 109:18f12ac01097 | 30 | #ifndef NYLPC_CIPV4CONFIG_H_ |
nyatla | 109:18f12ac01097 | 31 | #define NYLPC_CIPV4CONFIG_H_ |
nyatla | 109:18f12ac01097 | 32 | |
nyatla | 109:18f12ac01097 | 33 | |
nyatla | 109:18f12ac01097 | 34 | #include "NyLPC_NetIf_ip_types.h" |
nyatla | 109:18f12ac01097 | 35 | |
nyatla | 109:18f12ac01097 | 36 | /** |
nyatla | 109:18f12ac01097 | 37 | * クラス型を定義します。 |
nyatla | 109:18f12ac01097 | 38 | * NyLPC_cIPv4Configクラスは、IPと、下位のネットワーク層の設定を保持します。 |
nyatla | 109:18f12ac01097 | 39 | * 関連するオブジェクトが、ネットワーク設定を問い合わせる為に使います。 |
nyatla | 109:18f12ac01097 | 40 | */ |
nyatla | 109:18f12ac01097 | 41 | typedef struct NyLPC_TcIPv4Config NyLPC_TcIPv4Config_t; |
nyatla | 109:18f12ac01097 | 42 | |
nyatla | 109:18f12ac01097 | 43 | #ifdef __cplusplus |
nyatla | 109:18f12ac01097 | 44 | extern "C" { |
nyatla | 109:18f12ac01097 | 45 | #endif /* __cplusplus */ |
nyatla | 109:18f12ac01097 | 46 | /********************************************************************** |
nyatla | 109:18f12ac01097 | 47 | * |
nyatla | 109:18f12ac01097 | 48 | * class NyLPC_TcIPv4Config |
nyatla | 109:18f12ac01097 | 49 | * |
nyatla | 109:18f12ac01097 | 50 | **********************************************************************/ |
nyatla | 109:18f12ac01097 | 51 | |
nyatla | 109:18f12ac01097 | 52 | |
nyatla | 109:18f12ac01097 | 53 | |
nyatla | 109:18f12ac01097 | 54 | |
nyatla | 109:18f12ac01097 | 55 | /** |
nyatla | 109:18f12ac01097 | 56 | * NyLPC_TcIPv4Configクラスの構造体です。 |
nyatla | 109:18f12ac01097 | 57 | */ |
nyatla | 109:18f12ac01097 | 58 | struct NyLPC_TcIPv4Config |
nyatla | 109:18f12ac01097 | 59 | { |
nyatla | 109:18f12ac01097 | 60 | /** イーサネットアドレスを格納します。 */ |
nyatla | 109:18f12ac01097 | 61 | struct NyLPC_TEthAddr eth_mac; |
nyatla | 109:18f12ac01097 | 62 | /** IPアドレスを格納します。Network orderです。 */ |
nyatla | 109:18f12ac01097 | 63 | struct NyLPC_TIPv4Addr ip_addr; |
nyatla | 109:18f12ac01097 | 64 | /** ネットマスクを格納します。Network orderです。 */ |
nyatla | 109:18f12ac01097 | 65 | struct NyLPC_TIPv4Addr netmask; |
nyatla | 109:18f12ac01097 | 66 | /** デフォルトゲートウェイアドレスを格納します。Network orderです。 */ |
nyatla | 109:18f12ac01097 | 67 | struct NyLPC_TIPv4Addr dr_addr; |
nyatla | 109:18f12ac01097 | 68 | /** デフォルトMMSサイズです。送信パケットのMSS値、受信パケットのデフォルトMSS値として使います。 */ |
nyatla | 109:18f12ac01097 | 69 | NyLPC_TUInt16 default_mss; |
nyatla | 109:18f12ac01097 | 70 | }; |
nyatla | 109:18f12ac01097 | 71 | |
nyatla | 109:18f12ac01097 | 72 | #define NyLPC_TcIPv4Config_getEtherMac000120203(v)(((v)->eth_mac.addr[0]<<24)|((v)->eth_mac.addr[1]<<16)|((v)->eth_mac.addr[2]<<8)|((v)->eth_mac.addr[3]<<0)) |
nyatla | 109:18f12ac01097 | 73 | #define NyLPC_TcIPv4Config_getEtherMac0405xxxx(v) (((v)->eth_mac.addr[4]<<24)|((v)->eth_mac.addr[5]<<16)) |
nyatla | 109:18f12ac01097 | 74 | |
nyatla | 109:18f12ac01097 | 75 | /** |
nyatla | 109:18f12ac01097 | 76 | * コンストラクタです。 |
nyatla | 109:18f12ac01097 | 77 | * イーサネット用にコンフィギュレーションを初期化します。 |
nyatla | 109:18f12ac01097 | 78 | * @param i_inst |
nyatla | 109:18f12ac01097 | 79 | * 初期化するインスタンスです。 |
nyatla | 109:18f12ac01097 | 80 | * @param i_ether_frame_len |
nyatla | 109:18f12ac01097 | 81 | * イーサネットフレームのサイズ。この数値から、MSSのデフォルト値を計算します。 |
nyatla | 109:18f12ac01097 | 82 | */ |
nyatla | 109:18f12ac01097 | 83 | void NyLPC_cIPv4Config_initialzeForEthernet(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TEthAddr* i_ether_addr,NyLPC_TUInt16 i_ether_frame_len); |
nyatla | 109:18f12ac01097 | 84 | |
nyatla | 109:18f12ac01097 | 85 | /** |
nyatla | 109:18f12ac01097 | 86 | * コピーコンストラクタ |
nyatla | 109:18f12ac01097 | 87 | */ |
nyatla | 109:18f12ac01097 | 88 | void NyLPC_cIPv4Config_initialzeCopy(NyLPC_TcIPv4Config_t* i_inst,const NyLPC_TcIPv4Config_t* i_src); |
nyatla | 109:18f12ac01097 | 89 | |
nyatla | 109:18f12ac01097 | 90 | |
nyatla | 109:18f12ac01097 | 91 | /** |
nyatla | 109:18f12ac01097 | 92 | * デストラクタです。インスタンスを破棄して、確保している動的リソースを元に戻します。 |
nyatla | 109:18f12ac01097 | 93 | * @param i_inst |
nyatla | 109:18f12ac01097 | 94 | * 破棄するインスタンスです。 |
nyatla | 109:18f12ac01097 | 95 | * initializeに成功したインスタンスだけが指定できます。 |
nyatla | 109:18f12ac01097 | 96 | */ |
nyatla | 109:18f12ac01097 | 97 | #define NyLPC_cIPv4Config_finalize(i_inst) |
nyatla | 109:18f12ac01097 | 98 | |
nyatla | 109:18f12ac01097 | 99 | /** |
nyatla | 109:18f12ac01097 | 100 | * この関数は、IPのデフォルトゲートウェイを設定します。dr_addrの値を更新します。 |
nyatla | 109:18f12ac01097 | 101 | * @param i_inst |
nyatla | 109:18f12ac01097 | 102 | * 操作するインスタンスです。 |
nyatla | 109:18f12ac01097 | 103 | * @param i_dr_addr |
nyatla | 109:18f12ac01097 | 104 | * 設定するIPアドレスを格納したアドレスです。 |
nyatla | 109:18f12ac01097 | 105 | */ |
nyatla | 109:18f12ac01097 | 106 | void NyLPC_cIPv4Config_setDefaultRoute(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_dr_addr); |
nyatla | 109:18f12ac01097 | 107 | |
nyatla | 109:18f12ac01097 | 108 | /** |
nyatla | 109:18f12ac01097 | 109 | * この関数は、ローカルIPアドレスとネットマスクを設定します。 |
nyatla | 109:18f12ac01097 | 110 | * @param i_inst |
nyatla | 109:18f12ac01097 | 111 | * 操作するインスタンスです。 |
nyatla | 109:18f12ac01097 | 112 | * @param i_ipaddr |
nyatla | 109:18f12ac01097 | 113 | * 設定するIPアドレスを格納したアドレスです。 |
nyatla | 109:18f12ac01097 | 114 | * @param i_netmask |
nyatla | 109:18f12ac01097 | 115 | * 設定するネットマスクを格納したアドレスです。 |
nyatla | 109:18f12ac01097 | 116 | */ |
nyatla | 109:18f12ac01097 | 117 | void NyLPC_cIPv4Config_setIp(NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_ipaddr,const struct NyLPC_TIPv4Addr* i_netmask); |
nyatla | 109:18f12ac01097 | 118 | |
nyatla | 109:18f12ac01097 | 119 | /** |
nyatla | 109:18f12ac01097 | 120 | * この関数は、i_target_ipが、現在のIPアドレスに対するローカルアドレスであるかを返します。 |
nyatla | 109:18f12ac01097 | 121 | * @param i_inst |
nyatla | 109:18f12ac01097 | 122 | * 操作するインスタンスです。 |
nyatla | 109:18f12ac01097 | 123 | * @param i_target_ip |
nyatla | 109:18f12ac01097 | 124 | * 確認するIPアドレスです。 |
nyatla | 109:18f12ac01097 | 125 | * @return |
nyatla | 109:18f12ac01097 | 126 | * i_target_ipがローカルIPアドレスなら、TRUEを返します。 |
nyatla | 109:18f12ac01097 | 127 | */ |
nyatla | 109:18f12ac01097 | 128 | NyLPC_TBool NyLPC_cIPv4Config_isLocalIP(const NyLPC_TcIPv4Config_t* i_inst,const struct NyLPC_TIPv4Addr* i_target_ip); |
nyatla | 109:18f12ac01097 | 129 | |
nyatla | 109:18f12ac01097 | 130 | #ifdef __cplusplus |
nyatla | 109:18f12ac01097 | 131 | } |
nyatla | 109:18f12ac01097 | 132 | #endif /* __cplusplus */ |
nyatla | 109:18f12ac01097 | 133 | |
nyatla | 109:18f12ac01097 | 134 | #endif |
nyatla | 109:18f12ac01097 | 135 |