#ifndef PKTFORM_H #define PKTFORM_H #include <net/rtl/rtl_types.h> #include "flagDef.h" void l2FormEtherAddress(int8 * pktBuf, int8 * da, int8 * sa); void l2FormCrc(uint32 flag, int8 * pktBuf, uint32 payloadSize); // void l2FormVlanTag(uint32 flag, int8 * pktBuf, uint16 vlanTag, uint16 vlanPriority); void l2FormVlanTag(uint32 flag, int8 * pktBuf, uint16 vlanTag, uint8 vlanCfi, uint16 vlanPriority); void l2FormLlc(uint32 flag, uint8 dsap, uint8 ssap, int8 * pktBuf); // void l2FormLlc(uint32 flag, int8 * pktBuf); void l2FormPppoeSession(uint32 flag, int8 * pktBuf, uint16 etherType, uint16 sessionId); // static int32 l3Offset(uint32 flag); void l2FormOtherEtherType(uint32 flag, int8 * pktBuf, uint16 etherType, int8 * content, uint32 payloadLen); //Following fields are valid for layer2 only packets //Input length is the payload length, fill LLC length and pppoe length void l2FormLayer2Len(uint32 flag, int8 * pktBuf, uint16 payloadLen); void l2FormLayer3Type(uint32 flag, int8 * pktBuf, uint16 type);//EtherType or PPP protocol void l3FormIpxBasic(uint32 flag, uint8 type, int8 * pktBuf); void l3FormIpxDnet(uint32 flag, uint32 dnet, uint8 * dnode, uint16 dsock, int8 * pktBuf); void l3FormIpxSnet(uint32 flag, uint32 snet, uint8 * snode, uint16 ssock, int8 * pktBuf); void l3FormIpxContent(uint32 flag, int8 * pktBuf, int8 * content, uint32 size); void l3FormArpBasic(uint32 flag, uint16 op, int8 * pktBuf); void l3FormArpSelfInfo(uint32 flag, int8 * pktBuf, uint32 ipAddr, int8 * macAddr); void l3FormArpPeerInfo(uint32 flag, int8 * pktBuf, uint16 op, uint32 ipAddr, int8 * macAddr); void l3FormIpBasic(uint32 flag, int8 * pktBuf, uint8 ver, uint8 len); void l3FormIpFlow(uint32 flag, int8 * pktBuf, uint8 tos, uint8 ttl); //Input length is the payload length, function translate payload length to // the total length void l3FormIpTotalLen(uint32 flag, int8 * pktBuf, uint16 len); void l3FormIpIdFrag(uint32 flag, int8 * pktBuf, uint16 id, uint8 df, uint8 mf, uint16 offset); void l3FormIpProtocol(uint32 flag, int8 * pktBuf, int8 protocol); void l3FormIpAddr(uint32 flag, int8 * pktBuf, uint32 sip, uint32 dip); void l3FormIpContent(uint32 flag, int8 * pktBuf, uint8 * content, uint32 size); void l3FormIpOption(uint32 flag, int8 * pktBuf, uint8 * content, uint32 size); void l3FormIpChecksum(uint32 flag, int8 *pktBuf); //added by liujuan uint32 l3FormIpv6ExtHdr(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8 segleft, uint8 * dstip); void l3FormIpv6TotalLen(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint16 len); //added by liujuan void l3FormIpv6Basic(uint32 flag, int8* pktBuf, uint8 ver); //added by liujuan void l3FormIpv6Flow(uint32 flag, int8* pktBuf, uint8 pri, uint8 * fl, uint8 hl ); void l3FormIpv6Addr(uint32 flag, int8* pktBuf, uint8 * sip, uint8 * dip); void l3FormIpv6NextHeader(uint32 flag, int8 * pktBuf, uint8 nh); int32 v6ExtHdrLen(uint32 flag, uint8 rhdrlen); void l3FormIpv6Content(uint32 flag, int8 * pktBuf, uint8 hdrlen, int8 * content, uint32 size); //static uint32 l3FormIpv6ExtHdr(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8 segleft, uint8 * dstip); void l3FormLastHeader(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint32 lasthdr, uint8 nh); void l4FormPptpBasic(uint32 flag, int8 * pktBuf, uint8 Cbit, uint8 Rbit, uint8 Kbit, uint8 Sbit, uint8 sbit, uint8 recur, uint8 Abit, uint8 otherflags, uint8 ver); void l4FormPptpKey (uint32 flag, int8 * pktBuf, uint16 callid, uint32 seqno, uint32 ackno); void l4FormPptpOther (uint32 flag, int8 * pktBuf, int8 * content, uint32 size); void l4FormIcmpBasic(uint32 flag, int8 * pktBuf, uint8 type, uint8 code); void l4FormIcmpEcho(uint32 flag, int8 * pktBuf, uint16 id, uint16 seq); void l4FormIcmpData(uint32 flag, int8 * pktBuf, int8 * data, uint32 size); void l4FormIcmpChecksum(uint32 flag, int8 * pktBuf); //added by liujuan void l4FormIcmpBasicV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8 type, uint8 code, uint8* dip, uint8 segleft); void l4FormIcmpEchoV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint16 id, uint16 seq, uint8 * dip, uint8 segleft); void l4FormIcmpDataV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, int8 * data, uint32 size, uint8 * dip, uint8 segleft); void l4FormIcmpChecksumV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8* dip, uint8 segleft); void l4FormIgmpBasic(uint32 flag, int8 * pktBuf, uint8 ver, uint8 type, uint8 respTime, uint32 addr, uint8 qrsq, uint8 qqic, uint16 qnofs, uint32 * qslist, uint16 rnofg); void l4FormIgmpContent(uint32 flag, int8 * pktBuf, int8 * content, uint32 size, uint8 ver, uint8 type, uint16 qnofs); void l4FormIgmpChecksum(uint32 flag, int8 * pktBuf); void l4FormUdpBasic(uint32 flag, int8 * pktBuf, uint16 sPort, uint16 dPort); void l4FormUdpContent(uint32 flag, int8 * pktBuf, int8 * content, uint32 size); void l4FormUdpChecksum(uint32 flag, int8 * pktBuf); //added by liujuan void l4FormUdpBasicV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint16 sPort, uint16 dPort, uint8* dip, uint8 segleft); void l4FormUdpContentV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, int8 * content, uint32 size, uint8* dip, uint8 segleft); void l4FormUdpChecksumV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8 * dip, uint8 segleft); void l4FormTcpBasic(uint32 flag, int8 * pktBuf, uint16 sPort, uint16 dPort, uint8 hlen); void l4FormTcpFlow(uint32 flag, int8 * pktBuf, uint32 seq, uint32 ack, uint16 winSize, uint8 tcpFlag, uint16 urgPtr); void l4FormTcpOption(uint32 flag, int8 * pktBuf, int8 * option, uint8 size); void l4FormTcpContent(uint32 flag, int8 * pktBuf, int8 * content, uint32 size); void l4FormTcpChecksum(uint32 flag, int8 * pktBuf); //added by liujuan void l4FormTcpBasicV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint16 sPort, uint16 dPort, uint8 hlen, uint8* dip, uint8 segleft); void l4FormTcpFlowV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint32 seq, uint32 ack, uint16 winSize, uint8 tcpFlag, uint16 urgPtr, uint8* dip, uint8 segleft); void l4FormTcpOptionV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8 * option, uint8 size, uint8* dip, uint8 segleft); void l4FormTcpContentV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, int8 * content, uint32 size, uint8 * dip, uint8 segleft); void l4FormTcpChecksumV6(uint32 flag, int8 * pktBuf, uint8 hdrlen, uint8 * dip, uint8 segleft); uint32 formedPktLen(uint32 flag, int8 * pktBuf); uint32 formedpktLenV6(uint32 flag, int8 * pktBuf, uint8 hdrlen); //added by liujuan uint32 formedFrameLen(uint32 flag, int8 * pktBuf, uint32 payloadLen); #endif