亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ipsec_tunnel_utilities.c

?? ipsec PNE 3.3 source code, running at more than vxworks6.x version.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* ipsec_tunnel_utilities.c - WindNet IPsec and IKE tunnel utilities *//*  * Copyright (c) 2000-2006 Wind River Systems, Inc.  *  * The right to copy, distribute, modify or otherwise make use  * of this software may be licensed only pursuant to the terms  * of an applicable Wind River license agreement.  *//*modification history--------------------03m,13jan06,djp  removed rwos dependencies03l,12jan06,djp  removed rwos dependencies03k,28nov05,djp  replace WRN_INET with WRSEC_INET03j,28oct05,rlm  Fix to IP header checksum calculation (SPR#114627)03i,12apr05,djp  Fixed compiler errors03h,01apr05,rlm  Removed TTL/hop_limit decrement in tunnel code03g,10sep04,rlm  Minor fixes to #include stmts for compile errors with                 -DINCLUDE_IPFW_HOOKS -DVIRTUAL_STACK03f,30jul04,rlm  Fixes to virtual stack variable names to match new unified                 network stack03e,12jun03,rparkhil added support for STACK_NAME03d,24apr03,mad(teamf1) Modified to guard include file ipsec_ipv6_utilities.h            under ifdef __IPV6_STACK__03c,24Apr03,sam(teamf1) code cleanup.03b,08oct02,sam(teamf1) placed v6 code under __IPV6_STACK__.03a,31Sep02,rks(teamf1) added DF bit setting in tunnel header based on                     configuration on that interface.02b,25mar02,rpt   removed use of "ipsec_retain_df_bit", by default clear DF bit                  for tunneled packet. 02a,19mar02,rpt   replaced IP_MESSAGE* with IP_VI_MESSAGE* in func definitions01a,19mar02,rpt   extracted from WindNet IPSec 1.1, added modification history*//******************************************************************************/#include <vxWorks.h>#if (_WRS_VXWORKS_MAJOR < 6)#include <osdep.h>     /* Core IP headers */#include <machdep.h>#endif#ifdef _KERNEL#define _KERNEL_PREDEFINED#else#define _KERNEL#endif#include <net/if.h>#include <net/if_var.h>#include <netinet/in.h>#include <netinet/in_var.h>#include <netinet/ip.h>#include <netinet/ip_var.h>#ifndef _KERNEL_PREDEFINED#undef _KERNEL#else#undef _KERNEL_PREDEFINED#endif#include "../common/wrSecSerialize.h"#include "../common/wrSecInetAddr.h"#include "ipsecP.h"#include "ipsec_ah_message.h"#include "ipsec_esp_message.h"#include "ipsec_class.h"#include "ipsec_globals.h"#include "ipsec_tunnel_utilities.h"#include "ipsec_print_routines.h"#include "ipsec_network_interface.h"#include "packetBuf.h"#if defined (VIRTUAL_STACK)#include <netinet/vsLib.h>#include <netinet/vsData.h> /* for vsTbl[] *//* required if INCLUDE_IPFW_HOOKS defined */#ifdef _KERNEL#define _KERNEL_PREDEFINED#else#define _KERNEL#endif#include <netinet/vsIp.h> /* for IPSEC_INPUT_FUNCPTR, IPSEC_OUTPUT_FUNCPTR definitions */#ifndef _KERNEL_PREDEFINED#undef _KERNEL#else#undef _KERNEL_PREDEFINED#endif#if STACK_NAME == STACK_NAME_V4_V6 && defined (INET6)#include <netinet6/in6_var.h>#include <vs/vsIp6.h>#include "ipsec_ipv6_utilities.h"#endif /* STACK_NAME_V4_V6 && defined (INET6) */#else#if STACK_NAME == STACK_NAME_V4_V6#include <netinet/ip4_ext_in.h>  /* for IPSEC_INPUT_FUNCPTR definition */#include <netinet/ip4_ext_out.h> /* for IPSEC_OUTPUT_FUNCPTR definition */#endif#if STACK_NAME == STACK_NAME_V4_V6 && defined (INET6)#include <netinet6/ip6_var.h>#include <netinet6/ip6_ext_in.h>  /* for INPUT_HOOK_IPV6_FUNCPTR definition */#include <netinet6/ip6_ext_out.h> /* for IPSEC_OUTPUT_IPV6_FUNCPTR definition */#include "ipsec_ipv6_utilities.h"#ifdef _KERNEL#define _KERNEL_PREDEFINED#else#define _KERNEL#endif#include <netinet6/icmp6.h>#ifndef _KERNEL_PREDEFINED#undef _KERNEL#else#undef _KERNEL_PREDEFINED#endif#endif#endif /* defined (VIRTUAL_STACK) *//******************************************************************************//******************************************************************************/BOOL ipsec_deserialize_tunnel_message    (    SA_SPEC *p_spec,    IP_VI_MESSAGE *p_ip_message    )    {    UCHAR *p_payload;    UINT version_and_header_length;    UINT version;    UINT header_length;    UINT flags_and_fragment_offset;    UINT total_length;    IP_VERSION_NUMBER ip_version;    PARAMETER_NOT_USED (p_spec);    p_payload = NULL;    version_and_header_length = 0;    version = 0;    header_length = 0;    flags_and_fragment_offset = 0;    total_length = 0;    p_payload = packetBufDataGet(p_ip_message->pPayload);    if (p_payload == NULL)        {        return (FALSE);        }    ip_version = p_ip_message->version;    if (ip_version == IP_V4)        {        /*IPv4 Processing*/        version_and_header_length = wrSecDeserializeUChar (&p_payload);        version = (version_and_header_length >> 4);        header_length = version_and_header_length & 0xf;        header_length *= IP_WORD_SIZE;        /*version*/        /* header length */        ((IP_V4_MESSAGE *)p_ip_message)->header_length = header_length;        /*type of service*/        ((IP_V4_MESSAGE *)p_ip_message)->type_of_service = wrSecDeserializeUChar(&p_payload);        /*total length */        ((IP_V4_MESSAGE *)p_ip_message)->total_length = wrSecDeserializeUShort(&p_payload);        /*identifier*/        ((IP_V4_MESSAGE *)p_ip_message)->datagram_identifier = wrSecDeserializeUShort(&p_payload);        /* the first three bits contain the fragmentation flags.         * The next 13 bits contain the fragment offset.        */        flags_and_fragment_offset = wrSecDeserializeUShort(&p_payload);        /* skip the flags bits and note that the         fragment offset is on 8 byte boundary */        ((IP_V4_MESSAGE *)p_ip_message)->fragment_offset = (flags_and_fragment_offset & IP_FRAGMENT_OFFSET_MASK);        /* eliminate the lower 13 bits representing the fragment offset */        flags_and_fragment_offset >>= 13;        /* now the lsb is the more fragments flag */        ((IP_V4_MESSAGE *)p_ip_message)->more_fragment_flag = (flags_and_fragment_offset & 0x1) ? TRUE : FALSE;        /* eliminate the lower 1 bit representing the more fragments flag. */        flags_and_fragment_offset >>= 1;        /* now the lsb is the do not fragment flag */        ((IP_V4_MESSAGE *)p_ip_message)->dont_fragment_flag = (flags_and_fragment_offset & 0x1) ? TRUE : FALSE;        /* time to live */        ((IP_V4_MESSAGE *)p_ip_message)->time_to_live = wrSecDeserializeUChar(&p_payload);        /* protocol */        ((IP_V4_MESSAGE *)p_ip_message)->transport_protocol = wrSecDeserializeUChar(&p_payload);        /*checksum */        ((IP_V4_MESSAGE *)p_ip_message)->checksum = wrSecDeserializeUShort(&p_payload);        /* source IP address*/        wrSecInetAddrDeserialize(&p_payload,                                  (WRSEC_INET_ADDR *)&(((IP_V4_MESSAGE *)p_ip_message)->source_address));        /* destination IP address */        wrSecInetAddrDeserialize(&p_payload,                                  (WRSEC_INET_ADDR *)&(((IP_V4_MESSAGE *)p_ip_message)->destination_address));        packetBufReduceFront(p_ip_message->pPayload, header_length);        return (TRUE);        }    #if STACK_NAME == STACK_NAME_V4_V6 && defined (INET6)    else if (ip_version == IP_V6)        {        IP_V6_MESSAGE *p_ip6_message = (IP_V6_MESSAGE *)p_ip_message;        UCHAR *ip6Hdr = p_payload;        /*IPv6 Processing*/        /* version, traffic class & flow label */        (p_ip6_message)->flow_label = wrSecDeserializeULong(&p_payload);        /* payload len */        (p_ip6_message)->payload_length = wrSecDeserializeUShort(&p_payload);        /* next header*/        (p_ip6_message)->next_header = wrSecDeserializeUChar(&p_payload);        /* store next_header in transport_protocol */        (p_ip6_message)->transport_protocol = ipsecIpv6GetIpsecOrTransportProtocol (NULL, (struct ip6_hdr *)ip6Hdr);        p_ip6_message->extn_headers_len = 0;        p_ip6_message->extn_headers_len = ipsecIpv6ExtnHdrLenGet ((struct ip6_hdr *)ip6Hdr);        if (p_ip6_message->extn_headers_len)            {            p_ip6_message->first_extn_header = (p_ip6_message)->next_header;            p_ip6_message->next_header = (p_ip6_message)->transport_protocol;            }        /* hop limit */        (p_ip6_message)->hop_limit = wrSecDeserializeUChar(&p_payload);        /* source IP address*/        wrSecInetAddrDeserialize(&p_payload,                                  (WRSEC_INET_ADDR *)&((p_ip6_message)->source_address));        /* destination IP address */        wrSecInetAddrDeserialize(&p_payload,                                 (WRSEC_INET_ADDR *)&((p_ip6_message)->destination_address));        p_ip6_message->p_extn_headers = NULL;        /* Copy Extension Headers */        if (p_ip6_message->extn_headers_len)            {            p_ip6_message->p_extn_headers =                (UCHAR *)ip6Hdr - packetBufMaxWritableHeaderSizeGet(p_ip_message->pPayload);            }        memmove (p_ip6_message->p_extn_headers, p_payload, p_ip6_message->extn_headers_len);        packetBufReduceFront(p_ip_message->pPayload,                             MINIMUM_IP_V6_HEADER_LENGTH + p_ip6_message->extn_headers_len);        return (TRUE);        }    #endif /* STACK_NAME == STACK_NAME_V4_V6 && defined (INET6)  */    else        {        ipsec_printf (IPSEC_WARNING_PRINTF, "IPsec: IP Message: INVALID_VERSION\n");        return (FALSE);        }    }/******************************************************************************/BOOL ipsec_serialize_tunnel_message    (    SA_SPEC *p_spec,    IP_VI_MESSAGE *p_ip_message    )    {    IP_VERSION_NUMBER ip_version;    ip_version = p_ip_message->version;    if (ip_version == IP_V4)        {        /*IPv4 Processing*/        /*        ** version - construct        ** =====================        */        /*IP_VERSION_4;*/        /*         ** header length - construct        ** =====================        */        ((IP_V4_MESSAGE *)p_ip_message)->header_length = IP_PACKET_HEADER_MINIMUM_LENGTH / IP_WORD_SIZE;        /*        ** type of service - copied from inner header        ** =====================        */        /* p_ip_message->type_of_service = ; */        /*        ** total length        ** =====================        */        ((IP_V4_MESSAGE *)p_ip_message)->total_length            = packetBufDataSizeGet(p_ip_message->pPayload) + IP_PACKET_HEADER_MINIMUM_LENGTH;        /*        ** identification - construct        ** =====================        */        #ifdef VIRTUAL_STACK        ((IP_V4_MESSAGE *)p_ip_message)->datagram_identifier = _ip_id++;        #else        ((IP_V4_MESSAGE *)p_ip_message)->datagram_identifier = _ip_id++;        #endif        /* MF = 0, no more fragments to follow*/        ((IP_V4_MESSAGE *)p_ip_message)->dont_fragment_flag = 0;        ((IP_V4_MESSAGE *)p_ip_message)->more_fragment_flag = 0;        ((IP_V4_MESSAGE *)p_ip_message)->fragment_offset = 0;        /*        ** time to live - constructed        ** =====================        */        ((IP_V4_MESSAGE *)p_ip_message)->time_to_live = 64;        /*        ** protocol -  AH, ESP, routing hdr        ** =====================        */        ((IP_V4_MESSAGE *)p_ip_message)->transport_protocol = TRANSPORT_PORTO_IP_IN_IP_IPV4;        /*        ** checksum - construct         ** =====================        */        ((IP_V4_MESSAGE *)p_ip_message)->checksum = 0;        /*        ** source IP Address - Tunnel endpoint        ** =====================        */        WRSEC_INET4_ASSIGN_B_TO_A (            (&((IP_V4_MESSAGE *)p_ip_message)->source_address),            ((WRSEC_INET4_ADDR *) (((OUTBOUND_TUNNEL_SA_SPEC *)p_spec)->p_src_address)));        /*        ** destination IP Address - Tunnel endpoint

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99最新地址| 国产精品久久久久久久久久久免费看 | 亚洲自拍偷拍九九九| 91国产视频在线观看| 亚洲一区二区三区精品在线| 欧美猛男gaygay网站| 五月婷婷激情综合| 日韩亚洲欧美成人一区| 黄网站免费久久| 中文字幕在线免费不卡| 欧美在线视频全部完| 日日噜噜夜夜狠狠视频欧美人 | 欧美群妇大交群的观看方式| 日韩电影在线观看电影| 精品1区2区在线观看| 成人免费毛片aaaaa**| 亚洲免费观看高清完整| 91精品中文字幕一区二区三区| 久久成人羞羞网站| 中文字幕一区在线| 欧美日本一区二区| 国产精品中文有码| 一区二区三区中文字幕在线观看| 91精品国产综合久久精品麻豆| 国产一区在线精品| 亚洲美女视频在线| 精品久久久久久最新网址| 成人激情开心网| 日韩电影在线观看一区| 国产精品天美传媒| 91精品国产91久久久久久一区二区 | 波多野结衣中文字幕一区| 亚瑟在线精品视频| 国产色综合久久| 欧美日韩综合不卡| 国产成人av在线影院| 亚洲午夜激情网站| 国产婷婷色一区二区三区四区 | 日韩av中文在线观看| 国产三级精品视频| 欧美日韩精品欧美日韩精品一 | 婷婷国产v国产偷v亚洲高清| 国产亚洲1区2区3区| 欧美亚洲国产一区二区三区va| 国产一区二区三区在线观看免费视频 | 国产盗摄一区二区| 亚洲成人www| 国产精品乱码一区二三区小蝌蚪| 91精品国产入口| 一本色道久久综合亚洲aⅴ蜜桃| 激情五月婷婷综合| 亚洲1区2区3区视频| 国产精品国产三级国产有无不卡 | 日韩一区二区三区免费看| 91在线一区二区三区| 国产乱人伦偷精品视频不卡| 五月激情综合婷婷| 一区二区三区精品在线观看| 亚洲国产精品高清| 精品免费99久久| 这里只有精品电影| 色悠悠久久综合| www.亚洲人| 成人午夜激情影院| 国产一区二区三区四区五区入口| 日本亚洲视频在线| 午夜欧美2019年伦理| 一区二区三区在线视频免费| 中文字幕一区二区三区在线不卡| 国产午夜精品一区二区三区嫩草| 欧美成人性战久久| 日韩欧美一二三区| 日韩一区二区免费在线观看| 欧美一区二区在线播放| 欧美日韩中文字幕一区二区| 日本久久电影网| 日本道精品一区二区三区| 99综合影院在线| 91美女在线观看| 色婷婷一区二区| 欧美亚洲国产怡红院影院| 一本久久综合亚洲鲁鲁五月天 | 欧美午夜理伦三级在线观看| 色婷婷亚洲精品| 在线视频你懂得一区| 在线一区二区三区四区五区| 在线观看亚洲专区| 欧美日韩成人一区| 6080yy午夜一二三区久久| 欧美高清激情brazzers| 欧美一区二区三区四区久久| 精品毛片乱码1区2区3区| 日韩精品中文字幕一区二区三区 | 欧美午夜电影网| 制服丝袜av成人在线看| 日韩免费电影一区| 国产欧美一区二区精品性色超碰 | 精品欧美久久久| 久久久国产精华| 亚洲欧洲三级电影| 亚洲高清在线精品| 老鸭窝一区二区久久精品| 国产精品资源在线看| 9久草视频在线视频精品| 在线观看91视频| 91麻豆精品国产91久久久资源速度 | 日韩一区二区三区观看| 精品成人a区在线观看| 中文字幕av一区二区三区高| 亚洲欧美另类久久久精品| 五月天亚洲精品| 国产乱码精品1区2区3区| eeuss影院一区二区三区| 欧美色男人天堂| 久久久久久日产精品| 亚洲制服丝袜在线| 九一九一国产精品| 色综合久久综合网欧美综合网| 欧美一区二视频| 亚洲三级小视频| 久热成人在线视频| 色中色一区二区| 久久久美女毛片| 亚洲福利一区二区| 国产99精品视频| 91精品国产综合久久香蕉麻豆 | 亚洲美女免费在线| 老色鬼精品视频在线观看播放| 成人福利在线看| 日韩视频一区二区| 亚洲伦理在线精品| 国产精选一区二区三区| 欧美精品一级二级| 最近日韩中文字幕| 国内国产精品久久| 欧美日韩一卡二卡三卡| 国产精品美女一区二区| 麻豆精品视频在线观看视频| 日本电影亚洲天堂一区| wwwwww.欧美系列| 视频一区二区中文字幕| 91麻豆国产在线观看| 国产午夜精品美女毛片视频| 琪琪久久久久日韩精品| 在线欧美日韩国产| 1024成人网色www| 高清不卡一区二区在线| 精品理论电影在线| 天天综合天天综合色| 91激情五月电影| 亚洲欧洲av色图| 高清不卡一区二区| 国产午夜精品一区二区三区嫩草| 久久狠狠亚洲综合| 日韩一区二区三区在线| 日韩综合在线视频| 欧美日韩在线三级| 一区二区免费在线播放| 一本大道久久a久久综合婷婷| 日本一区二区成人| 国产成人综合在线观看| 精品播放一区二区| 精品一区二区av| 欧美一区二区三区免费| 天堂一区二区在线| 欧美精品在线一区二区三区| 亚洲6080在线| 在线不卡一区二区| 日韩av一二三| 91精品福利在线一区二区三区| 亚洲大片免费看| 欧美日韩激情一区二区| 香蕉影视欧美成人| 欧美日韩国产区一| 午夜欧美视频在线观看| 欧美日韩高清一区二区| 亚洲成av人片www| 7777精品伊人久久久大香线蕉 | 极品销魂美女一区二区三区| 欧美v日韩v国产v| 国产乱码字幕精品高清av| 久久久久久久国产精品影院| 国产成人精品网址| 国产精品福利一区二区三区| 91年精品国产| 午夜天堂影视香蕉久久| 欧美一区二区视频在线观看| 国产在线看一区| 国产精品麻豆网站| 日本电影欧美片| 免费日韩伦理电影| 国产日本欧美一区二区| 91亚洲午夜精品久久久久久| 亚洲国产欧美一区二区三区丁香婷| 欧美剧情片在线观看| 久久精品国产久精国产| 欧美国产丝袜视频| 欧洲视频一区二区| 免费在线看成人av| 国产精品入口麻豆九色|