misc: deprecate gbp and its dependents
[vpp.git] / test / patches / scapy-2.3.3 / dhcp6-options.patch
1 diff --git a/scapy/layers/dhcp6.py b/scapy/layers/dhcp6.py
2 index 4cb9291..a1adcfc 100644
3 --- a/scapy/layers/dhcp6.py
4 +++ b/scapy/layers/dhcp6.py
5 @@ -74,7 +74,9 @@ dhcp6opts = { 1: "CLIENTID",
6               36: "OPTION_GEOCONF_CIVIC",             #RFC-ietf-geopriv-dhcp-civil-09.txt
7               37: "OPTION_REMOTE_ID",                 #RFC4649
8               38: "OPTION_SUBSCRIBER_ID",             #RFC4580
9 -             39: "OPTION_CLIENT_FQDN" }              #RFC4704
10 +             39: "OPTION_CLIENT_FQDN",               #RFC4704
11 +             68: "OPTION_VSS",                       #RFC6607
12 +             79: "OPTION_CLIENT_LINKLAYER_ADDR" }    #RFC6939
13  
14  dhcp6opts_by_code = {  1: "DHCP6OptClientId", 
15                         2: "DHCP6OptServerId",
16 @@ -116,12 +118,14 @@ dhcp6opts_by_code = {  1: "DHCP6OptClientId",
17                         #40: "DHCP6OptPANAAgent",          #RFC-ietf-dhc-paa-option-05.txt
18                         #41: "DHCP6OptNewPOSIXTimeZone,    #RFC4833
19                         #42: "DHCP6OptNewTZDBTimeZone,     #RFC4833
20 -                       43: "DHCP6OptRelayAgentERO"        #RFC4994
21 +                       43: "DHCP6OptRelayAgentERO",       #RFC4994
22                         #44: "DHCP6OptLQQuery",            #RFC5007
23                         #45: "DHCP6OptLQClientData",       #RFC5007
24                         #46: "DHCP6OptLQClientTime",       #RFC5007
25                         #47: "DHCP6OptLQRelayData",        #RFC5007
26                         #48: "DHCP6OptLQClientLink",       #RFC5007
27 +                       68: "DHCP6OptVSS",                 #RFC6607
28 +                       79: "DHCP6OptClientLinkLayerAddr", #RFC6939
29  }
30  
31  
32 @@ -838,6 +842,26 @@ class DHCP6OptRelayAgentERO(_DHCP6OptGuessPayload):       # RFC4994
33                      _OptReqListField("reqopts", [23, 24],
34                                       length_from = lambda pkt: pkt.optlen) ]
35  
36 +# "Client link-layer address type.  The link-layer type MUST be a valid hardware
37 +# type assigned by the IANA, as described in [RFC0826]
38 +class DHCP6OptClientLinkLayerAddr(_DHCP6OptGuessPayload):       #RFC6939
39 +    name = "DHCP6 Option - Client Link Layer address"
40 +    fields_desc = [ ShortEnumField("optcode", 79, dhcp6opts),
41 +                    FieldLenField("optlen", None, length_of="clladdr",
42 +                                  adjust = lambda pkt,x: x+1),
43 +                    ShortField("lltype", 1), # ethernet
44 +                    _LLAddrField("clladdr", ETHER_ANY) ]
45 +
46 +# Virtual Subnet selection
47 +class DHCP6OptVSS(_DHCP6OptGuessPayload):       #RFC6607
48 +    name = "DHCP6 Option - Virtual Subnet Selection"
49 +    fields_desc = [ ShortEnumField("optcode", 68, dhcp6opts),
50 +                    FieldLenField("optlen", None, length_of="data",
51 +                                  adjust = lambda pkt,x: x+1),
52 +                    ByteField("type", 255), # Default Global/default table
53 +                    StrLenField("data", "",
54 +                                length_from = lambda pkt: pkt.optlen) ]
55 +
56  #####################################################################
57  ###                        DHCPv6 messages                        ###
58  #####################################################################