代码拉取完成,页面将自动刷新
package sctp
import (
"fmt"
"github.com/pkg/errors"
)
// paramType represents a SCTP INIT/INITACK parameter
type paramType uint16
type param interface {
marshal() ([]byte, error)
length() int
}
func buildParam(t paramType, rawParam []byte) (param, error) {
switch t {
case forwardTSNSupp:
return (¶mForwardTSNSupported{}).unmarshal(rawParam)
case supportedExt:
return (¶mSupportedExtensions{}).unmarshal(rawParam)
case random:
return (¶mRandom{}).unmarshal(rawParam)
case reqHMACAlgo:
return (¶mRequestedHMACAlgorithm{}).unmarshal(rawParam)
case chunkList:
return (¶mChunkList{}).unmarshal(rawParam)
case stateCookie:
return (¶mStateCookie{}).unmarshal(rawParam)
case heartbeatInfo:
return (¶mHeartbeatInfo{}).unmarshal(rawParam)
}
return nil, errors.Errorf("Unhandled ParamType %v", t)
}
const (
heartbeatInfo paramType = 1 // Heartbeat Info [RFC4960]
ipV4Addr paramType = 5 // IPv4 IP [RFC4960]
ipV6Addr paramType = 6 // IPv6 IP [RFC4960]
stateCookie paramType = 7 // State Cookie [RFC4960]
unrecognizedParam paramType = 8 // Unrecognized Parameters [RFC4960]
cookiePreservative paramType = 9 // Cookie Preservative [RFC4960]
hostNameAddr paramType = 11 // Host Name IP [RFC4960]
supportedAddrTypes paramType = 12 // Supported IP Types [RFC4960]
outSSNResetReq paramType = 13 // Outgoing SSN Reset Request Parameter [RFC6525]
incSSNResetReq paramType = 14 // Incoming SSN Reset Request Parameter [RFC6525]
ssnTSNResetReq paramType = 15 // SSN/TSN Reset Request Parameter [RFC6525]
reconfigResp paramType = 16 // Re-configuration Response Parameter [RFC6525]
addOutStreamsReq paramType = 17 // Add Outgoing Streams Request Parameter [RFC6525]
addIncStreamsReq paramType = 18 // Add Incoming Streams Request Parameter [RFC6525]
random paramType = 32770 // Random (0x8002) [RFC4805]
chunkList paramType = 32771 // Chunk List (0x8003) [RFC4895]
reqHMACAlgo paramType = 32772 // Requested HMAC Algorithm Parameter (0x8004) [RFC4895]
padding paramType = 32773 // Padding (0x8005)
supportedExt paramType = 32776 // Supported Extensions (0x8008) [RFC5061]
forwardTSNSupp paramType = 49152 // Forward TSN supported (0xC000) [RFC3758]
addIPAddr paramType = 49153 // Add IP IP (0xC001) [RFC5061]
delIPAddr paramType = 49154 // Delete IP IP (0xC002) [RFC5061]
errClauseInd paramType = 49155 // Error Cause Indication (0xC003) [RFC5061]
setPriAddr paramType = 49156 // Set Primary IP (0xC004) [RFC5061]
successInd paramType = 49157 // Success Indication (0xC005) [RFC5061]
adaptLayerInd paramType = 49158 // Adaptation Layer Indication (0xC006) [RFC5061]
)
func (p paramType) String() string {
switch p {
case heartbeatInfo:
return "Heartbeat Info"
case ipV4Addr:
return "IPv4 IP"
case ipV6Addr:
return "IPv6 IP"
case stateCookie:
return "State Cookie"
case unrecognizedParam:
return "Unrecognized Parameters"
case cookiePreservative:
return "Cookie Preservative"
case hostNameAddr:
return "Host Name IP"
case supportedAddrTypes:
return "Supported IP Types"
case outSSNResetReq:
return "Outgoing SSN Reset Request Parameter"
case incSSNResetReq:
return "Incoming SSN Reset Request Parameter"
case ssnTSNResetReq:
return "SSN/TSN Reset Request Parameter"
case reconfigResp:
return "Re-configuration Response Parameter"
case addOutStreamsReq:
return "Add Outgoing Streams Request Parameter"
case addIncStreamsReq:
return "Add Incoming Streams Request Parameter"
case random:
return "Random"
case chunkList:
return "Chunk List"
case reqHMACAlgo:
return "Requested HMAC Algorithm Parameter"
case padding:
return "Padding"
case supportedExt:
return "Supported Extensions"
case forwardTSNSupp:
return "Forward TSN supported"
case addIPAddr:
return "Add IP IP"
case delIPAddr:
return "Delete IP IP"
case errClauseInd:
return "Error Cause Indication"
case setPriAddr:
return "Set Primary IP"
case successInd:
return "Success Indication"
case adaptLayerInd:
return "Adaptation Layer Indication"
default:
return fmt.Sprintf("Unknown ParamType: %d", p)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。