antrea-io / libOpenflow

OpenFlow Go library
Apache License 2.0
9 stars 18 forks source link

Need explanation about util.Buffer #45

Open shi0rik0 opened 1 year ago

shi0rik0 commented 1 year ago

I can't figure out why util.Buffer should exist. Take the ipv4 for example.

type IPv4 struct {
    Version        uint8 //4-bits
    IHL            uint8 //4-bits
    DSCP           uint8 //6-bits
    ECN            uint8 //2-bits
    Length         uint16
    Id             uint16
    Flags          uint16 //3-bits
    FragmentOffset uint16 //13-bits
    TTL            uint8
    Protocol       uint8
    Checksum       uint16
    NWSrc          net.IP
    NWDst          net.IP
    Options        util.Buffer
    Data           util.Message
}

Why should the type of "Options" field be util.Buffer?

shi0rik0 commented 1 year ago

I think a simple []byte is enough for "Options". If we want to support Marshal and Unmarshal on it, we can just let it be util.Message.