summaryrefslogtreecommitdiffhomepage
path: root/dhcpv4/bsdp/bsdp.go
AgeCommit message (Collapse)Author
2019-05-08[CI] Added lintersAndrea Barberio
Now the CI will also run golangci-lint Signed-off-by: Andrea Barberio <insomniac@slackware.it>
2019-01-28update bsdpPablo Mazzini
2019-01-28update bsdpPablo Mazzini
2019-01-28dhcpv4: moved client into dhcpv4/client4Andrea Barberio
2019-01-24dhcpv4: getters instead of gettersChristopher Koch
From: r := GetRouter(d.Options) To: r := d.Router()
2019-01-24dhcpv4: nicer API for option parsing.Christopher Koch
From: r := d.GetOneOption(OptionRouter).(*OptRouter).Routers d.UpdateOption(&OptRouter{Routers: []net.IP{net.IP{192, 168, 0, 1}}}) To: r := GetRouter(d.Options) d.UpdateOption(OptRouter(net.IP{192, 168, 0, 1}, ...))
2019-01-19dhcpv4: build more packets with modifiersChristopher Koch
Also drop unnecessary return value of Modifier.
2019-01-15dhcpv4: conform to RFC 2131 with respect to options.Christopher Koch
Removes AddOption and GetOption. RFC 2131 specifies that options may only appear once (Section 4.1). If an option does appear more than once, its byte values must be concatenated. RFC 3396 further specifies that to send options longer than 255 bytes, one option may be split into multiple option codes, which must be concatenated back together by the receiver. Both of these are concerned with the byte representation of options. Fact is, based on both RFCs one can say that an option may only appear once, but may be composed of multiple values. Because an option may appear only once logically in any case, we remove the AddOption and GetOption functions and leave only UpdateOption and GetOneOption. Also remove all additions & checks of the End option - the marshaling and unmarshaling code is exclusively responsible for that now.
2019-01-14bsdp: simplify version type.Christopher Koch
2019-01-11dhcpv4: simplify marshaling options to binary.Christopher Koch
- Consolidate writing the option code and length to Options.Marshal rather than doing it in each individual option. - Use uio in marshaling code.
2019-01-10dhcpv4: simplify option parsing.Christopher Koch
option's codes and lengths were being parsed twice: once in ParseOption and once in each option type's Parse implementation. Consolidate such that it only happens once. Additionally, only pass data to options that they should parse -- we know the length before the Parse function is called, so the option only gets to see the data it needs to see. Also, use uio.Lexer to simplify parsing code in general. Easier to read and reason about.
2019-01-09dhcpv4: export packet members; remove setters and getters.Christopher Koch
2018-10-03BSDP: Fix MessageTypeFromPacket to return a pointerSean Karlage
As @insomiacslk pointed out in #161, it's probably better to return a pointer rather than a (MessageType, bool) combo.
2018-10-01add commentSean Karlage
2018-10-01BSDP: Add MessageTypeFromPacket helperSean Karlage
This is a helper function to extract the BSDP message type from a given `dhcpv4.DHCPv4` packet structure. It's useful in helping to identify what kind of BSDP packet you're dealing with (since the distinction is only made in one of the vendor-specific options encapsulated in Option 43).
2018-08-15Merge branch 'master' into bsdp-acksSean Karlage
2018-08-15Put back NewInformListForInterface to maintain compatSean Karlage
2018-08-15Add nil check for Images sliceSean Karlage
2018-08-14BSDP: Add code to generate ACKs for INFORMsSean Karlage
2018-07-29Add some helper tools for testsSean Karlage
Adds new `OptionGetter` interface that helps when asserting that certain packets/vendor-specific opts contain specific options.
2018-07-29DHCPv4: Refactor methods for easier testingSean Karlage
This refactors the input parameters for construction DISCOVER/INFORM* packets so that it's easier to write unit tests for DHCPv4 and BSDP methods. It also adds a bunch of unit tests for both packages and rounds out their test coverage.
2018-07-29add NewReplyFromRequest (#100)Pablo Mazzini
2018-07-27BSDP: Refactor to use dhcpv4.GetOneOption (#94)Sean Karlage
Refactors BSDP code to use `dhcpv4.GetOneOption` instead of manually searching through the list of options.
2018-03-30Remove build tags (#27)Sean Karlage
Removes build tags from BSDP and breaks vendor class identifier into OS-specific implementations so it is easier to integrate bsdp with other libs.
2018-03-26Add some more specific bsdp options + vendor specific implementation (#21)Sean Karlage
Add some more specific options + vendor specific implementation
2018-03-22Add vendor specific information optionSean Karlage
2018-03-22Add specific BSDP optionsSean Karlage
2018-03-16Add more specific dhcpv4 options (#17)Sean Karlage
Added several DHCPv4 options
2018-03-13Add OptionGeneric, comment out other code so tests compile/passSean Karlage
2018-03-06Refactor tests to use stretchr/testify/requireSean Karlage
2018-03-05Move bsdp functionality to its own subpackage. Bring in ↵Sean Karlage
stretchr/testify/assert for nicer asserts